【发布时间】:2010-08-14 08:04:28
【问题描述】:
如何使方法具有参数的默认值?
【问题讨论】:
标签: c# .net optional-parameters
如何使方法具有参数的默认值?
【问题讨论】:
标签: c# .net optional-parameters
您只能在 C# 4 中执行此操作,它同时引入了 named arguments and optional parameters:
public void Foo(int x = 10)
{
Console.WriteLine(x);
}
...
Foo(); // Prints 10
请注意,默认值必须是常量 - 正常的编译时常量(例如文字)或:
default(T) 某些类型 T
还请注意,默认值嵌入在 调用者的 程序集中(假设您省略了相关参数) - 因此,如果您更改默认值而不重建调用代码,您仍然会看到旧值。
C# in Depth 的第二版中介绍了这个(以及 C# 4 中的其他新功能)。 (在这种情况下是第 13 章。)
【讨论】:
C# in Depth 图书的链接错误。 manning.com 网站返回一个 PHP 文件,该文件重定向到一个无法加载的网站。
C# 4.0 允许你使用named and optional arguments:
public void ExampleMethod(
int required,
string optionalstr = "default string",
int optionalint = 10
)
在以前的版本中,您可以使用方法重载simulate default parameters。
【讨论】:
您只需使用默认值声明它们 - 它们称为optional parameters:
public void myMethod(string param1 = "default", int param2 = 3)
{
}
这是在 C# 4.0 中引入的(因此您需要使用 Visual Studio 2010)。
【讨论】:
一个简单的解决方案是重载方法:
private void Foo(int length)
{
}
private void Foo()
{
Foo(20);
}
【讨论】: