繁体   English   中英

将多个可选参数传递给 C# 函数

[英]Pass multiple optional parameters to a C# function

有没有办法设置一个 C# 函数来接受任意数量的参数? 例如,您是否可以设置一个功能,以便以下所有工作 -

x = AddUp(2, 3)

x = AddUp(5, 7, 8, 2)

x = AddUp(43, 545, 23, 656, 23, 64, 234, 44)

使用带有params修饰符的参数数组

public static int AddUp(params int[] values)
{
    int sum = 0;
    foreach (int value in values)
    {
        sum += value;
    }
    return sum;
}

如果您想确保至少有一个值(而不是可能为空的数组),请单独指定:

public static int AddUp(int firstValue, params int[] values)

(将sum设置为firstValue以在实现中开始。)

请注意,您还应该以正常方式检查数组引用是否为空。 在该方法中,参数是一个非常普通的数组。 参数数组修饰符仅在您调用该方法时有所不同。 基本上编译器变成:

int x = AddUp(4, 5, 6);

变成类似的东西:

int[] tmp = new int[] { 4, 5, 6 };
int x = AddUp(tmp);

可以用一个完全正常的数组调用它 - 所以后一种语法在源代码中也是有效的。

C# 4.0 还支持可选参数,这在其他一些情况下可能很有用。 看到这篇文章。

1.您可以制作重载功能。

SomeF(strin s){}   
SomeF(string s, string s2){}    
SomeF(string s1, string s2, string s3){}   

更多信息: http : //csharpindepth.com/Articles/General/Overloading.aspx

2.或者你可以用参数创建一个函数

SomeF( params string[] paramArray){}
SomeF("aa","bb", "cc", "dd", "ff"); // pass as many as you like

更多信息: https : //docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/params

3.或者你可以使用简单的数组

Main(string[] args){}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM