当前位置:  开发笔记 > 编程语言 > 正文

在C#中有类似PHP的可选参数吗?

如何解决《在C#中有类似PHP的可选参数吗?》经验,为你挑选了1个好方法。

使用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示例中一样吗?



1> Marc Gravell..:

不在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

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有