C#中的默认方法参数

时间:2010-08-14 08:04:28

标签: c# .net optional-parameters

如何让方法具有参数的默认值?

4 个答案:

答案 0 :(得分:14)

您只能在引入named arguments and optional parameters

的C#4中执行此操作
public void Foo(int x = 10)
{
    Console.WriteLine(x);
}

...
Foo(); // Prints 10

请注意,默认值必须是常量 - 正常的编译时常量(例如文字)或:

  • 值类型
  • 的无参数构造函数 某些类型default(T)
  • T

另请注意,默认值嵌入在调用者的程序集中(假设您省略了相关参数) - 因此,如果更改默认值而不重建调用代码,您仍会看到旧的价值。

这个(以及C#4中的其他新功能)在C# in Depth的第二版中有所介绍。 (本案第13章。)

答案 1 :(得分:12)

C#4.0允许您使用named and optional arguments

public void ExampleMethod(
    int required, 
    string optionalstr = "default string",
    int optionalint = 10
)

在以前的版本中,您可以使用方法重载simulate default parameters

答案 2 :(得分:6)

您只需使用默认值声明它们 - 它们称为optional parameters

 public void myMethod(string param1 = "default", int param2 = 3)
 {
 }

这是在C#4.0中引入的(因此您需要使用visual studio 2010)。

答案 3 :(得分:2)

一个简单的解决方案是重载方法:

private void Foo(int length)
{
}

private void Foo()
{
    Foo(20);
}