參數數組(params)的用法


使用參數數組的注意事項:
1. 只能在一維數組上使用params關鍵字。
2. 不能重載一個只基於params關鍵字的方法。params關鍵字不構成方法的簽名的一部分。
如:
//編譯時錯誤:重復訪問
public static int Min(int [] paramList)
.............
public static int Min(params int [] paramList)
.............
3. 不允許ref或out params數組
//編譯時錯誤
public static int Min(ref params int [] paramList)
.............
public static int Min(out params int [] paramList)
.............
4. params 數組必須是方法的最后一個參數(也就是只能有一個params數組參數)
public static int Min(params int [] paramList,int i)
.............
5. 編譯器會檢查並拒絕任何可能有歧義的重載
6. 非params方法總是優先於一個params方法。也就是說,如果願意,仍然可以為普通情況創建一個方法的重載版本,

如:
 public static int Min(int leftHandSide,int rightHandSide)
優於:
    public static int Min(params int [] paramList)

using System;
public class MyClass {
        public static void UseParams(params int[] list) {
            for (int i = 0; i < list.Length; i++) {
                 Console.WriteLine(list[i]);
                }
             Console.WriteLine();
             }

         public static void UseParams2(params object[] list) {
             for (int i = 0; i < list.Length; i++) {
                Console.WriteLine(list[i]);
                }
             Console.WriteLine();
            }

            static void Main() {
                UseParams(1, 2, 3);
                 UseParams2(1, 'a', "test");
                 An array of objects can also be passed, as long as
                the array type matches the method being called.
                 int[] myarray = new int[3] { 10, 11, 12 };
                 UseParams(myarray);
            }
}

    程序的輸出結果如下:
1
2
3

1
a
test

10
11
12

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM