Можно ли указать параметры по умолчанию на С#?
В C:
void fun(int i = 1)
{
printf("%d", i);
}
Можем ли мы дать параметрам значение по умолчанию? Возможно ли это на С#? Если да, можем ли мы избежать перегрузки функций?
Всегда полезно использовать необязательный параметр для существующей функции. Если вы работаете над проектом, которому приходится ссылаться на класс, имеющий функцию, и мы изменили параметр с необязательным значением, он может выдать исключение времени выполнения, что метод не найден.
Это потому, что мы будем учитывать, что если мы добавим дополнительное необязательное значение, не потребуется никакого изменения кода, если функция используется во многих местах.
function Add(int a, int b);
Это будет вызвано следующим образом:
Add(10, 10);
Но если мы добавим необязательный параметр, например,
function Add(int a, int b, int c = 0);
тогда компилятор ожидает
Add(10, 10, 0);
На самом деле мы вызываем этот Add(10, 10)
, и эта функция не будет доступна в этом классе и вызовет исключение времени выполнения.
Это происходит, добавляя новый параметр к функции, вызываемой множеством мест, и я не уверен, что это произойдет каждый раз. Но я предлагаю вам перегрузить функцию.
Всегда нужно перегружать метод, который имеет необязательный параметр. Также, если вы работаете с функциями, имеющими более одного необязательного параметра, тогда полезно передать значение, используя имя параметра.
function Add(int a, int b, int c = 0);
Всегда полезно вызвать эту функцию следующим образом.
Add(10, 20, c:30);