有没有在C#中的PHP类可选参数?
-
19-08-2019 - |
题
是 PHP可选参数后,如果您不发送参数将被分配到一个默认值:
public function getCustomer(id, optionalMessage = "(no message)") {
...
}
在C#我一般与的 C#方法重载下,e.g解决这个问题:
public void GetCustomer(int id)
{
...
}
public void GetCustomer(int id, string optionalMessage)
{
...
}
但我错过了务实PHP变种,请不C#也有一些含糖的语法做的可选参数以及,如PHP的例子吗?
解决方案
不是在C#3.0;这个功能是在片材上的C#4.0 - 见此处一>
现在,你将不得不使用不同的重载:
public void Foo(int a) {Foo(a, "");}
public void Foo(int a, string b) {...}
所提出的语法是:
public void Foo(int a, string b = "") {...}
称为与任何的:
Foo(123); // use default b
Foo(123, "abc"); // optional by position
Foo(123, b: "abc"); // optional by name
其他提示
没有,但是你也可以模拟在一定程度上,特别是如果你的可选参数是相同类型的(或者你不介意做一些铸造)。
可以使用PARAMS标志。
void paramsExample(object arg1, object arg2, params object[] argsRest)
我应该指出的是,这个失去类型安全,并且在参数或命令。
的无类型强制不隶属于 StackOverflow