C#中的默认方法参数
如何使方法具有参数的默认值?
您只能在C#4中执行此操作,它引入了命名参数和可选参数 :
public void Foo(int x = 10) { Console.WriteLine(x); } ... Foo(); // Prints 10
请注意,默认值必须是常量 – 正常的编译时常量(例如文字)或:
- 值类型的无参数构造函数
- 某些类型
T
default(T)
另请注意,默认值嵌入在调用者的程序集中(假设您省略了相关参数) – 因此,如果更改默认值而不重建调用代码,您仍将看到旧值。
这个(以及C#4中的其他新function) 在深度的第二版C#中有所介绍。 (本案第13章。)
C#4.0允许您使用命名和可选参数 :
public void ExampleMethod( int required, string optionalstr = "default string", int optionalint = 10 )
在以前的版本中,您可以使用方法重载来模拟默认参数 。
您只需使用默认值声明它们 – 它们称为可选参数 :
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); }