← Все вопросы

Как правильно объявлять методы в C# и передавать параметры?

Задан 21 месяц назад772 просмотров2 ответа
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, виртуальные методы) — это разные вещи.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект