This article has been localized into Russian by the community.
Методы (функции)
В то время как свойства и поля считаются пассивными частями класса, методы призваны выполнять определенные действия. Также методы могут возвращать некоторый результат. Изучая другие языки программирования, Вы могли столкнуться с таким определением как "функции". В контексте С# методы - это не что иное, как функции, принадлежащие классу. Методы весьма полезны, так как они позволяют реализовать некоторый функционал в виде блока кода, который затем может быть неоднократно использован разработчиком.
Таким образом выглядит определение метода:
<visibility> <return type> <name>(<parameters>)
{
<method code>
}Вот простой пример:
public int AddNumbers(int number1, int number2)
{
return number1 + number2;
}Данный метод осуществит сложение двух чисел и возврат суммы. Давайте рассмотрим код нашего примера подробнее:
- public представляет собой модификатор доступа (его мы рассмотрим подробнее чуть позже в этом уроке)
- int это тип возвращаемого значения. Если метод не должен возвращать значение, просто замените int на void
- AddNumbers - имя нашего метода
- (int number1, int number2) - параметры (рассмотрим подробнее позже). При объявлении метода параметры можно и не указывать, оставив пустое место между скобками. Скобки должны присутствовать обязательно.
- Внутри метода (между фигурными скобками) расположен сам код метода. Он может состоять из определенного количества строк.
Для того чтобы вызвать метод, стоит всего-навсего написать его имя вместе со скобками. Внутри скобок укажите сами параметры (если метод должен их принимать), таким образом:
AddNumbers(3, 39);Объявив методы в классе, можно вызывать их из других классов. Для этого стоит во время вызова добавить перед именем метода имя объекта, а в случае статического метода - имя его класса (статические методы рассмотрим позже). Вот пример вызова метода AddNumbers(), который был объявлен классе MathHelper:
public void DoMath()
{
MathHelper mathHelper = new MathHelper();
int result = mathHelper.AddNumbers(4, 38);
Console.WriteLine(result);
} Возвращаемые значения методов
Давайте поговорим побольше о типах возвращаемых методом значений. В приведенных выше примерах мы объявили метод таким образом, что он будет возвращать целочисленное значение, но методы могут возвращать значения любого другого типа данных, представленного в C#. Также метод может и не возвращать значение, как мы видели это на примере ранее рассмотренного DoMath(). Обратите внимание, слово int было заменено на void, это означает что метод не должен ничего возвращать. В некоторых языках программирования функции не возвращающие значений называют процедурами, но в C# это всё те же "методы".
Следует помнить о том, что если для метода был определен тип возвращаемого значения, Вы ДОЛЖНЫ возвращать что-либо, в противном случае возникнет ошибка компиляции.
public int AddNumbers(int number1, int number2)
{
Console.WriteLine(number1 + number2);
}Compiler error: AddNumbers(int, int)': not all code paths return a valueЭто означает, что вы должны использовать один или несколько операторов return внутри вашего метода, если он был объявлен как метод, возвращающий значение. Может понадобиться несколько return для ситуаций как эта:
public int AddLargeNumbers(int number1, int number2)
{
if((number1 > 1000) && (number2 > 1000))
{
return number1 + number2;
}
return 0;
}В этом случае второе выражение с return так же необходимо. Если его опустить, возникнет ошибка компиляции, так как условное выражение может не выполняться и первый return не сработает.
Заключение
Методы позволяют реализовать функционал или алгоритм в виде именованного блока кода, чтобы многократно использовать данный функционал из разных мест в коде. Подавая методу различные параметры на вход, можно добиться разных возвращаемых значений. Мы использовали некоторые параметры в примерах данного урока, но в следующем мы рассмотрим тему параметров метода намного глубже.