Elementor Header #8

41. Определение методов

1. Введение

Методы в C# позволяют группировать код в логически обособленные блоки, которые можно вызывать из разных частей программы. Это повышает читаемость, переиспользуемость и удобство сопровождения кода.

Простой метод:

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

				
			

Вызов метода:

				
					SayHello(); // Привет, мир!

				
			
2. Основной синтаксис определения метода
				
					<модификатор_доступа> <тип_возвращаемого_значения> <имя_метода>(<параметры>)
{
    // Тело метода
}

				
			

2. Основной синтаксис определения метода

				
					<модификатор_доступа> <тип_возвращаемого_значения> <имя_метода>(<параметры>)
{
    // Тело метода
}

				
			

Разбор структуры:

ЧастьОписание
модификатор_доступа(public, private, protected, internal) — указывает, кто может использовать метод
тип_возвращаемого_значенияУказывает, что метод возвращает (void, int, string, bool, object, List<T> и т. д.)
имя_методаДолжно быть осмысленным и соответствовать его назначению
параметрыСписок входных данных для метода (могут отсутствовать)
returnЗавершает выполнение метода и возвращает значение (если void, return можно не писать)

3. Примеры методов

3.1. Метод без параметров и без возвращаемого значения

				
					static void PrintMessage()
{
    Console.WriteLine("Это метод без параметров и без возвращаемого значения.");
}

				
			

Вызов:

				
					PrintMessage();

				
			

3.2. Метод с параметром

				
					static void Greet(string name)
{
    Console.WriteLine($"Привет, {name}!");
}

				
			

Вызов:

				
					Greet("Алиса"); // Привет, Алиса!

				
			

3.3. Метод с возвращаемым значением

				
					static int Square(int number)
{
    return number * number;
}

				
			

Вызов:

				
					int result = Square(5);
Console.WriteLine(result); // 25

				
			

4. Перегрузка методов (Overloading)

Можно объявить несколько методов с одним именем, но разными параметрами.

				
					static void ShowMessage(string message)
{
    Console.WriteLine(message);
}

static void ShowMessage(string message, int count)
{
    for (int i = 0; i < count; i++)
        Console.WriteLine(message);
}

				
			

Вызов:

				
					ShowMessage("Привет"); // 1 раз
ShowMessage("Привет", 3); // 3 раза

				
			

5. Вложенные методы

Методы могут быть объявлены внутри других методов (локальные методы, C# 7+).

				
					static void OuterMethod()
{
    Console.WriteLine("Внешний метод");

    void InnerMethod()
    {
        Console.WriteLine("Внутренний метод");
    }

    InnerMethod();
}

				
			

Вызов:

				
					OuterMethod();
// Внешний метод
// Внутренний метод

				
			

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

Метод может вызывать сам себя для решения задач, которые можно разбить на более простые подзадачи.

Пример: рекурсивный расчет факториала

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

				
			

Заключение

  • Методы позволяют структурировать код и избегать дублирования.
  • Модификаторы доступа определяют область видимости метода (public, private и т. д.).
  • Методы могут иметь параметры и возвращать значения (int, string, void и т. д.).
  • Можно создавать методы с одинаковыми именами, но разными параметрами (перегрузка).
  • Рекурсивные методы полезны для задач с повторяющейся структурой (например, факториал, Фибоначчи).

Тестовое задание

Задание:

  1. Напишите метод Multiply, который принимает два числа и возвращает их произведение.
  2. Напишите метод IsEven, который принимает число и возвращает true, если оно четное, иначе false.
  3. Вызовите оба метода и выведите результаты в консоль.

Пример решения:

				
					using System;

class Program
{
    static int Multiply(int a, int b)
    {
        return a * b;
    }

    static bool IsEven(int number)
    {
        return number % 2 == 0;
    }

    static void Main()
    {
        Console.WriteLine(Multiply(4, 5)); // 20
        Console.WriteLine(IsEven(10)); // True
        Console.WriteLine(IsEven(7));  // False
    }
}

				
			

Попробуйте написать и запустить этот код, чтобы убедиться в правильности выполнения операций и особенностях работы с числами с плавающей точкой.

logo