使用PHP可选参数,如果不发送参数,则会将其分配给默认值:
public function getCustomer(id, optionalMessage = "(no message)") { ... }
在C#中我通常使用C#方法重载来解决这个问题,例如:
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