17

在其他语言中,我可以设置方法签名,例如

cookEgg(boolean hardBoiled = true)

如果我在方法调用中没有收到参数,这会将参数默认为hardboiledtrue

我将如何在 C# 中实现这一点?

4

3 回答 3

32

目前,您必须重载该方法:

void cookEgg(bool hardBoiled) { ... }
void cookEgg() { cookEgg(true); }

C# 4.0 将添加可选参数 - 您将能够编写与原始示例中完全相同的代码,并且它会按您预期的方式工作。

于 2009-07-30T04:24:34.183 回答
11

C# 4 (Visual Studio 2010) 支持默认参数。

http://msdn.microsoft.com/en-us/library/dd264739(VS.100).aspx

于 2009-07-30T05:46:44.640 回答
2

这不是您看起来的样子,但我认为params参数是另一个答案。

void test(params int []arg) { }
于 2009-07-30T04:36:01.060 回答