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

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

10
задан Peter Mortensen 15 January 2017 в 17:50
поделиться

4 ответа

Простое решение - перегрузить метод:

private void Foo(int length)
{
}

private void Foo()
{
    Foo(20);
}
3
ответ дан 3 December 2019 в 14:05
поделиться

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

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

...
Foo(); // Prints 10

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

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

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

Эта (и другие новые возможности C # 4) рассматриваются во втором издании Подробно о C # . (В данном случае - Глава 13.)

15
ответ дан 3 December 2019 в 14:05
поделиться

C# 4.0 позволяет использовать именованные и необязательные аргументы:

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

В предыдущих версиях можно было имитировать параметры по умолчанию с помощью перегрузки методов.

12
ответ дан 3 December 2019 в 14:05
поделиться

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

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

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

7
ответ дан 3 December 2019 в 14:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: