如何使方法具有参数的默认值?
问问题
16046 次
4 回答
16
您只能在 C# 4 中执行此操作,它引入了命名参数和可选参数:
public void Foo(int x = 10)
{
Console.WriteLine(x);
}
...
Foo(); // Prints 10
请注意,默认值必须是常量 - 正常的编译时常量(例如文字)或:
- 值类型的无参数构造函数
default(T)
对于某种类型T
另请注意,默认值嵌入在调用者的程序集中(假设您省略了相关参数) - 因此,如果您更改默认值而不重建调用代码,您仍然会看到旧值。
这个(以及 C# 4 中的其他新特性)在 C# 第二版的Depth 中进行了介绍。(在这种情况下是第 13 章。)
于 2010-08-14T08:06:25.360 回答
8
您只需使用默认值声明它们 - 它们称为可选参数:
public void myMethod(string param1 = "default", int param2 = 3)
{
}
这是在 C# 4.0 中引入的(因此您需要使用 Visual Studio 2010)。
于 2010-08-14T08:06:00.567 回答
4
一个简单的解决方案是重载该方法:
private void Foo(int length)
{
}
private void Foo()
{
Foo(20);
}
于 2010-08-14T08:07:01.210 回答