在c#中,可以在方法中使用默认参数值,例如:
public void SomeMethod(String someString = "string value")
{
Debug.WriteLine(someString);
}
但现在我想使用数组作为方法中的参数,并为其设置默认值 我认为它看起来应该是这样的:
public void SomeMethod(String[] arrayString = {"value 1", "value 2", "value 3"})
{
foreach(someString in arrayString)
{
Debug.WriteLine(someString);
}
}
但这不起作用。
是否有正确的方法可以做到这一点,如果有可能的话呢?
答案 0 :(得分:15)
是否有正确的方法可以做到这一点,如果有可能的话呢?
这是不可能的(直接),因为默认值必须是以下之一(来自Optional Arguments):
创建数组不适合可选参数的任何可能的默认值。
这里最好的选择是过载:
public void SomeMethod()
{
SomeMethod(new[] {"value 1", "value 2", "value 3"});
}
public void SomeMethod(String[] arrayString)
{
foreach(someString in arrayString)
{
Debug.WriteLine(someString);
}
}
答案 1 :(得分:11)
试试这个:
public void SomeMethod(String[] arrayString = null)
{
arrayString = arrayString ?? {"value 1", "value 2", "value 3"};
foreach(someString in arrayString)
{
Debug.WriteLine(someString);
}
}
someMethod();