Mar*_*elo 53 .net c# overloading function
在C#中你可以这样做:
foo = string.Format("{0} {1} {2} {3} ...", "aa", "bb", "cc" ...);
Run Code Online (Sandbox Code Playgroud)
此方法Format()
接受无限参数,第一个是如何格式化字符串,其余是要放在字符串中的值.
今天我遇到了一种情况,我必须得到一组字符串并测试它们,然后我记得这种语言功能,但我不知道.在几次不成功的网络搜索之后,我意识到获得一个阵列会更加谨慎,这并不能让我非常满意.
问:如何创建一个接受无限参数的函数?我该如何使用它?
Kla*_*sen 94
使用params
关键字.
这是一个例子:
public int SumThemAll(params int[] numbers)
{
return numbers.Sum();
}
public void SumThemAllAndPrintInString(string s, params int[] numbers)
{
Console.WriteLine(string.Format(s, SumThemAll(numbers)));
}
public void MyFunction()
{
int result = SumThemAll(2, 3, 4, 42);
SumThemAllAndPrintInString("The result is: {0}", 1, 2, 3);
}
Run Code Online (Sandbox Code Playgroud)
代码显示各种事物.首先,params
关键字的参数必须始终为last(并且每个函数只能有一个).此外,您可以调用params
以两种方式接受参数的函数.第一种方法在第一行中说明,MyFunction
其中每个数字作为单个参数添加.但是,也可以使用数组SumThemAllAndPrintInString
调用它,如所示,SumThemAll
使用int[]
被调用的调用numbers
.
Dav*_*ton 19
使用params关键字.用法:
public void DoSomething(int someValue, params string[] values)
{
foreach (string value in values)
Console.WriteLine(value);
}
Run Code Online (Sandbox Code Playgroud)
使用params关键字的参数总是在最后.
几点说明.
Params需要在数组类型上标记,如string []或object [].
标记为w/params的参数必须是您方法的最后一个参数.例如,Foo(string input1,object [] items).