Необязательные параметры в C#
Параметры функции можно сделать необязательными. Для этого параметру задают значение по умолчанию. Если аргумент при вызове не передали, подставится заготовленное число.
Пусть для примера есть функция Show, которая
выводит в консоль квадрат числа из параметра num:
void Show(int num)
{
Console.WriteLine(num * num);
}
Сделаем так, чтобы параметр num по умолчанию имел
числовое значение 0 прямо в объявлении функции:
void Show(int num = 0)
{
Console.WriteLine(num * num);
}
Значение по умолчанию пишут только у последних параметров. Если значение задано не всем, его ставят в конце списка, а параметры без значения оставляют в начале. Когда таких значений несколько, их пишут подряд у последних параметров.
Проверим вызов, в котором аргумент передан:
void Show(int num = 0)
{
Console.WriteLine(num * num);
}
Show(2); // prints 4
Проверим отдельный вызов этой функции совсем без аргумента.
Подставится число 0, а квадрат нуля равен 0:
void Show(int num = 0)
{
Console.WriteLine(num * num);
}
Show(); // prints 0
У функции Show значение по умолчанию задано только
второму параметру num2. Параметр num1 указывают
при каждом вызове, и значение по умолчанию ему не задают:
void Show(int num1, int num2 = 0)
{
Console.WriteLine(num1 + num2);
}
Show(4, 1); // prints 5
Show(4); // prints 4
Дана функция:
void Show(int num = 5)
{
Console.WriteLine(num * num);
}
Функция вызывается так:
Show(2);
Show(3);
Show();
Расскажите, каким будет результат каждого из вызовов функции.
Дана функция:
void Show(int num1 = 0, int num2 = 0)
{
Console.WriteLine(num1 + num2);
}
Функция вызывается так:
Show(2, 3);
Show(3);
Show();
Расскажите, каким будет результат каждого из вызовов функции.