共用方式為


使用數目不定的參數 (C# 與 Java 的比較)

更新:2007 年 11 月

C# 可讓您將數目不定的參數傳送至方法,只需要在宣告方法時指定 params 關鍵字即可。引數清單中也可包含標準參數,但是請注意,使用 params 關鍵字宣告的參數必須排在最後面。它接受可變長度陣列的形式,而且每個方法只能有一個 params 參數。

當編譯器嘗試解析方法呼叫時,它會尋找其引數清單和被呼叫方法相符的方法。如果找不到符合引數清單的方法多載,但是找到了具有適當型別之 params 參數的相符版本,那麼該方法會被呼叫,而多餘的引數則會放置在陣列中。

下列範例示範這項作業:

class TestParams
{
    private static void Average(string title, params int[] values)
    {
        int sum = 0;
        System.Console.Write("Average of {0} (", title);

        for (int i = 0; i < values.Length; i++)
        {
            sum += values[i];
            System.Console.Write(values[i] + ", ");
        }
        System.Console.WriteLine("): {0}", (float)sum/values.Length);
    }
    static void Main()
    {
        Average ("List One", 5, 10, 15);
        Average ("List Two", 5, 10, 15, 20, 25, 30);
    }
}

在上述範例中,Average 方法是使用型別整數陣列的 params 參數來宣告,這可讓您以任何數目的引數來呼叫此方法。輸出如下所示:

Average of List One (5, 10, 15, ): 10

Average of List Two (5, 10, 15, 20, 25, 30, ): 17.5

如果想要允許不同型別的不定參數,您可指定 Object 型別的 params 參數。

請參閱

概念

C# 程式設計手冊

參考

傳遞陣列當做參數 (C# 程式設計手冊)

其他資源

Java 開發人員可用的 C# 程式設計語言