Параметры метода по умолчанию в С#

Как я могу создать метод для значений параметров по умолчанию?

Ответ 1

Вы можете сделать это только на С# 4, в котором представлены именованные аргументы и необязательные параметры:

public void Foo(int x = 10)
{
    Console.WriteLine(x);
}

...
Foo(); // Prints 10

Обратите внимание, что значение по умолчанию должно быть константой - либо обычной константой времени компиляции (например, литералом), либо:

  • Беспараметрический конструктор типа значения
  • default(T) для некоторого типа T

Также обратите внимание, что значение по умолчанию встроено в сборку вызывающего абонента (при условии, что вы опускаете соответствующий аргумент) - поэтому, если вы измените значение по умолчанию, не перестраивая код вызова, вы все равно увидите старое значение.

Это (и другие новые функции на С# 4) описаны во втором выпуске С# в глубине. (Глава 13 в этом случае.)

Ответ 3

Вы просто объявляете их со значениями по умолчанию - они называются необязательные параметры:

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

Это было введено в С# 4.0 (так что вам нужно будет использовать visual studio 2010).

Ответ 4

Простым решением является перегрузка метода:

private void Foo(int length)
{
}

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