C# для новичков: Урок 10 — Создаем функции (методы)

Функции – небольшие подпрограммы, вызываемые многократно внутри проекта. Функция содержит код, выполняемый при её вызове.

Удобство использования функций

Функции удобны для выполнения повторяющегося кода. Вместо многократного копирования, функцию определяют один раз и вызывают при необходимости. Это повышает читаемость и упрощает работу с кодом. На практике мы уже сталкивались с функциями (или методами): основная функция main запускает проект, а при работе с динамическими массивами использовались методы объектов.

Функции и методы: различия

Функции и методы – практически одно и то же. Разница в месте определения:

  • Функции: определяются вне классов.
  • Методы: определяются внутри классов.

В C#, объектно-ориентированном языке, каждый файл – это класс, поэтому фактически используются только методы. Термины часто применяются взаимозаменяемо.

Создание метода

Все методы определяются вне других методов. Пример:

public static void Print()
{
    Console.WriteLine("Hello");
}
  • public: модификатор доступа; метод доступен всем классам.
  • static: обращение к методу через имя класса, без создания объекта.
  • void: возвращаемый тип; метод ничего не возвращает.
  • Print(): имя метода.
  • Console.WriteLine("Hello");: код метода.

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

Print(); // Вызов метода Print
Print(); // Еще один вызов

Два вызова Print() выводят «Hello» дважды на консоль.

Методы с параметрами

Методы могут принимать параметры:

public static void Print(string word)
{
    Console.WriteLine(word);
}

Метод Print принимает строковый параметр word. Вызов:

Print("Hello");
Print("Hello World");
string words = "Hello there!";
Print(words);

Вывод на консоль зависит от переданного параметра.

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

Методы могут возвращать значения. Вместо void указывается тип возвращаемого значения:

public static int Sum(int x, int y)
{
    return x + y;
}

Метод Sum принимает два целых числа и возвращает их сумму. Результат можно сохранить:

int s1 = Sum(5, 6);
int s2 = Sum(4, 7);
Console.WriteLine(s1); // Выведет 11
Console.WriteLine(s2); // Выведет 11

Вывод результата с помощью Print и ToString():

Console.WriteLine(s1.ToString()); // Выведет 11

Метод для суммирования элементов массива

Метод, принимающий массив байтов и возвращающий сумму элементов:

public static byte Sum(byte[] digits)
{
    byte sum = 0;
    foreach (byte digit in digits)
    {
        sum += digit;
    }
    return sum;
}

Пример использования:

byte[] myArray = { 1, 2, 3, 4, 5, 6, 7 };
byte rs1 = Sum(myArray);
byte[] myArray2 = {1,2,3,4,5,6,3};
byte rs2 = Sum(myArray2);
Console.WriteLine($"Результат 1: {rs1}"); // Выведет сумму элементов первого массива
Console.WriteLine($"Результат 2: {rs2}"); // Выведет сумму элементов второго массива

Функции и методы обеспечивают повторное использование кода и модульность, упрощая разработку и повышая эффективность. В C# они являются важнейшими инструментами для организации кода.

Что будем искать? Например,программа