C#是否支持可变数量的参数,以及如何?

C#是否支持可变数量的参数?

如果是,C#如何支持variablesno的参数?

什么是例子?

variables参数如何有用?

编辑1 :它有什么限制?

编辑2 :问题不是可选参数,而是variables参数

是。 经典的例子是params object[] args

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

一个典型的用例就是将命令行环境中的parameter passing给一个程序,在那里你以string的forms传递它们。 程序然后validation并正确地分配它们。

限制:

  • 每种方法只允许使用一个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

C#使用params关键字支持可变长度参数数组。

这是一个例子。

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

这里有更多的信息。

是的, params :

 public void SomeMethod(params object[] args) 

params必须是最后一个参数,可以是任何types。 不知道它是否必须是一个数组或只是一个IEnumerable。

我假设你的意思是可变数量的方法参数 。 如果是这样:

 void DoSomething(params double[] parms) 

(或与固定参数混合)

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

限制:

  • 它们必须都是相同的types(或者是一个子types),对于数组也是如此
  • 每个方法只能有一个
  • 他们必须在参数列表中排在最后

这是我现在所能想到的,尽pipe可能有其他的。 检查文档以获取更多信息。