Чи можу я вказати параметри за замовчуванням у C #?
У C:
void fun(int i = 1)
{
printf("%d", i);
}
Чи можемо ми задати параметрам значення за замовчуванням? Чи можливо це в C #? Якщо так, чи можемо ми уникнути перевантаження функцій?
Завжди поганою практикою є додавання необов’язкового параметра до існуючої функції. Якщо ви працюєте над проектом, який повинен посилатися на клас, що має функцію, і ми змінили параметр із необов’язковим значенням, це може викликати виняток часу виконання, що метод не знайдений.
Це тому, що ми будемо вважати, що якщо ми додамо додаткове необов’язкове значення, не буде потрібно змінити код, якщо функція використовується в багатьох місцях.
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);