Cra*_*rze 61 c# parameters function
有没有办法设置C#函数来接受任意数量的参数?例如,您是否可以设置一个功能,以便以下所有工作 -
x = AddUp(2, 3)
x = AddUp(5, 7, 8, 2)
x = AddUp(43, 545, 23, 656, 23, 64, 234, 44)
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 142
使用带修饰符的参数数组params:
public static int AddUp(params int[] values)
{
int sum = 0;
foreach (int value in values)
{
sum += value;
}
return sum;
}
Run Code Online (Sandbox Code Playgroud)
如果要确保至少有一个值(而不是可能为空的数组),请单独指定:
public static int AddUp(int firstValue, params int[] values)
Run Code Online (Sandbox Code Playgroud)
(设置sum为firstValue从实现开始.)
请注意,您还应该以正常方式检查数组引用是否为null.在该方法中,参数是完全普通的数组.参数数组修饰符仅在调用方法时有所不同.编译器基本上转向:
int x = AddUp(4, 5, 6);
Run Code Online (Sandbox Code Playgroud)
变成这样的东西:
int[] tmp = new int[] { 4, 5, 6 };
int x = AddUp(tmp);
Run Code Online (Sandbox Code Playgroud)
您可以使用完全正常的数组调用它 - 因此后一种语法在源代码中也是有效的.
1.可以制作重载函数。
SomeF(strin s){}
SomeF(string s, string s2){}
SomeF(string s1, string s2, string s3){}
Run Code Online (Sandbox Code Playgroud)
更多信息:http://csharpindepth.com/Articles/General/Overloading.aspx
2.或者您可以使用参数创建一个函数
SomeF( params string[] paramArray){}
SomeF("aa","bb", "cc", "dd", "ff"); // pass as many as you like
Run Code Online (Sandbox Code Playgroud)
更多信息:https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/params
3.或者你可以使用简单的数组
Main(string[] args){}
Run Code Online (Sandbox Code Playgroud)