Методы в C#: полное руководство с примерами
Случайная статья Статьи

Методы в C#: Полное руководство для начинающих

Введение

Методы (или функции) — это основные строительные блоки программы в C#. Они позволяют разбивать код на логические части, делая его более читаемым, удобным для поддержки и повторного использования.

[IMAGE: Визуализация работы методов в программе]

1. Что такое метод?

Метод — это именованный блок кода, который выполняет определённую задачу.

Зачем нужны методы?

  • Избегаем дублирования кода – один метод можно вызывать много раз
  • Упрощаем понимание программы – код разбит на логические части
  • Облегчаем отладку – проще найти ошибку в небольшом методе

2. Синтаксис метода

Метод состоит из:

  1. Модификатора доступа (public, private, static)
  2. Типа возвращаемого значения (void, int, string)
  3. Имени метода (по правилам CamelCase)
  4. Параметров (входные данные)
  5. Тела метода (исполняемый код)
// Модификатор | Возвращаемый тип | Имя метода | Параметры
public void Greet(string name)
{
    // Тело метода
    Console.WriteLine($"Привет, {name}!");
}

// Вызов метода
Greet("Анна"); // Выведет: "Привет, Анна!"

3. Возвращаемые значения

Методы могут возвращать результат или просто выполнять действия.

3.1. Метод без возврата (void)

void SayHello()
{
    Console.WriteLine("Привет!");
}

SayHello(); // Просто выводит текст

3.2. Метод с возвратом значения

int Add(int a, int b)
{
    return a + b; // Возвращает сумму
}

int result = Add(3, 5); // result = 8
Console.WriteLine(result);

4. Параметры методов

Параметры — это входные данные, которые передаются в метод.

4.1. Простые параметры

void PrintFullName(string firstName, string lastName)
{
    Console.WriteLine($"{firstName} {lastName}");
}

PrintFullName("Иван", "Петров"); // Выведет: "Иван Петров"

4.2. Параметры по умолчанию

void PrintMessage(string message = "Привет, мир!")
{
    Console.WriteLine(message);
}

PrintMessage(); // "Привет, мир!"
PrintMessage("Как дела?"); // "Как дела?"

4.3. ref и out параметры

// ref параметр
void Increment(ref int number)
{
    number++;
}

int x = 5;
Increment(ref x); // x станет 6
Console.WriteLine(x); // 6

// out параметр
bool TryParseNumber(string input, out int result)
{
    return int.TryParse(input, out result);
}

if (TryParseNumber("123", out int number))
    Console.WriteLine($"Число: {number}"); // Число: 123

Примечание: Параметры с модификаторами ref и out позволяют методам изменять значения переменных, переданных из вызывающего кода.

5. Перегрузка методов

void Print(int number)
{
    Console.WriteLine($"Число: {number}");
}

void Print(string text)
{
    Console.WriteLine($"Текст: {text}");
}

Print(10);   // "Число: 10"
Print("Тест"); // "Текст: Тест"

6. Рекурсивные методы

int Factorial(int n)
{
    if (n == 1) return 1;
    return n * Factorial(n - 1);
}

Console.WriteLine(Factorial(5)); // 120 (5! = 5*4*3*2*1)

Важно: Рекурсия должна иметь условие выхода, иначе программа зависнет!

7. Локальные функции (C# 7.0+)

void Calculate(int a, int b)
{
    int Sum() => a + b; // Локальная функция
    Console.WriteLine(Sum());
}

Calculate(3, 5); // 8

Заключение

  • Методы помогают структурировать код
  • void – если метод не возвращает значение
  • return – возвращает результат
  • Параметры (ref, out) позволяют изменять внешние переменные
  • Перегрузка – несколько методов с одним именем
  • Рекурсия – метод вызывает сам себя
  • Локальные функции – удобны для сложных вычислений

Практическое задание

  1. Напишите метод IsEven, который проверяет, является ли число чётным
  2. Создайте перегруженный метод Print, который выводит:
    • Число
    • Текст
    • Массив чисел
[IMAGE: Пример выполнения практического задания]

Статья сгенерирована AI.