对于 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 的工作表上 - 请参阅 here .
现在,您必须使用不同的重载:
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
关于c# - C# 中有类似 PHP 的可选参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/650574/