← Все вопросы
Как правильно объявлять методы в C# и передавать параметры?
6
Начинаю с методов. Не до конца понимаю синтаксис объявления, что такое параметры по умолчанию, именованные и params. Можно базовый разбор?
int Sum(int a, int b) => a + b;
2 ответа
12
✓ Принятый ответ — помог автору
Общая структура метода: модификатор тип_возврата Имя(параметры) { тело }.
public int Sum(int a, int b)
{
return a + b;
}
// для коротких методов — лямбда-тело (expression-bodied)
public int Square(int x) => x * x;
// void — ничего не возвращает
public void Log(string msg) => Console.WriteLine(msg);
Полезные возможности параметров:
// 1. Значения по умолчанию
void Greet(string name, string greeting = "Привет")
=> Console.WriteLine($"{greeting}, {name}");
Greet("Аня"); // Привет, Аня
// 2. Именованные аргументы (любой порядок)
Greet(greeting: "Hello", name: "Bob");
// 3. params — переменное число аргументов
int SumAll(params int[] nums)
{
int total = 0;
foreach (var n in nums) total += n;
return total;
}
SumAll(1, 2, 3, 4); // 10
Методы с одинаковым именем, но разными параметрами — это перегрузка (overloading), компилятор сам выберет подходящий по аргументам.
4
Добавлю про перегрузку — частый приём:
void Print(int x) => Console.WriteLine($"int: {x}");
void Print(string x) => Console.WriteLine($"string: {x}");
Print(5); // int: 5
Print("hi"); // string: hi
Компилятор выбирает версию по типам аргументов. Только не путайте перегрузку (overload, разные сигнатуры) с переопределением (override, виртуальные методы) — это разные вещи.
Ваш ответ
Войдите, чтобы ответить на вопрос.