2012-03-02 91 views

回答

60

是的。最典型的例子wourld是params object[] args

//Allows to pass in any number and types of parameters 
public static void Program(params object[] args) 

一個典型的用例將在命令行環境中傳遞參數的程序,在那裏你通過他們作爲字符串。程序然後驗證並正確地分配它們。

限制:

  • 只有一個params關鍵字每方法
  • 它必須是最後一個參數是允許的。

編輯:我讀了你的編輯後,我做了我的。下面的部分還介紹了實現可變數量參數的方法,但我認爲您確實在尋找params的方法。


另外,更經典者之一,被稱爲方法重載。你可能已經用他們已經很多了:

//both methods have the same name and depending on wether you pass in a parameter 
//or not, the first or the second is used. 
public static void SayHello() { 
    Console.WriteLine("Hello"); 
} 
public static void SayHello(string message) { 
    Console.WriteLine(message); 
} 

最後但並非最不重要的最令人興奮的一個:可選參數

//this time we specify a default value for the parameter message 
//you now can call both, the method with parameter and the method without. 
public static void SayHello(string message = "Hello") { 
    Console.WriteLine(message); 
} 

http://msdn.microsoft.com/en-us/library/dd264739.aspx

+0

如何通過RPC傳遞參數從Java與JSON數據格式? – 2016-10-04 12:53:13

10

是,params

public void SomeMethod(params object[] args) 

PARAMS必須是最後一個參數,可以是任何類型的。不知道它是否必須是一個數組或只是一個IEnumerable。

12

C#支持使用params關鍵字的可變長度參數數組。

下面是一個例子。

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

還有更多的信息here

6

我假定你的意思是variable number of method parameters。如果是這樣的:

void DoSomething(params double[] parms) 

(或者具有固定參數混合)

void DoSomething(string param1, int param2, params double[] otherParams) 

限制:

  • 他們都必須是同一類型(或子類)的是真正的數組
  • 每個方法只能有一個
  • 它們必須在參數li st

這就是我現在所能想到的,儘管可能有其他人。檢查文檔以獲取更多信息。

相關問題