С# — Методы
Метод — это группа операторов, которые вместе выполняют задачу. В каждой программе C# есть как минимум один класс с методом Main.
Чтобы использовать метод, вам нужно -
- Определить метод
- Вызвать метод
Определение методов в C#
Когда вы определяете метод, вы в основном объявляете элементы его структуры. Синтаксис определения метода в C# следующий:
<Access Specifier> <Return Type> <Method Name>(Parameter List) { Method Body }
Ниже приведены различные элементы метода —
-
Спецификатор доступа − Это определяет видимость переменной или метода из другого класса.
-
Тип возвращаемого значения − Метод может возвращать значение. Тип возвращаемого значения — это тип данных значения, которое возвращает метод. Если метод не возвращает никаких значений, то возвращаемый тип — void. .
-
Название метода − Имя метода является уникальным идентификатором и чувствительно к регистру. Он не может совпадать с любым другим идентификатором, объявленным в классе.
-
Список параметров − Заключенные в круглые скобки параметры используются для передачи и получения данных из метода. Список параметров относится к типу, порядку и количеству параметров метода. Параметры являются необязательными; то есть метод может не содержать параметров.
-
Тело метода − Содержит набор инструкций, необходимых для выполнения необходимого действия.
Пример
В следующем фрагменте кода показана функция FindMax. который принимает два целочисленных значения и возвращает большее из двух. Он имеет открытый спецификатор доступа, поэтому к нему можно получить доступ извне класса, используя экземпляр класса.
class NumberManipulator { public int FindMax(int num1, int num2) { /* local variable declaration */ int result; if (num1 > num2) result = num1; else result = num2; return result; } ... }
Вызов методов в C#
Вы можете вызвать метод, используя имя метода. Следующий пример иллюстрирует это —
Живая демонстрацияusing System; namespace CalculatorApplication { class NumberManipulator { public int FindMax(int num1, int num2) { /* local variable declaration */ int result; if (num1 > num2) result = num1; else result = num2; return result; } static void Main(string[] args) { /* local variable definition */ int a = 100; int b = 200; int ret; NumberManipulator n = new NumberManipulator(); //calling the FindMax method ret = n.FindMax(a, b); Console.WriteLine("Max value is : {0}", ret ); Console.ReadLine(); } } }
Когда приведенный выше код скомпилирован и выполнен, он дает следующий результат —
Max value is : 200
Вы также можете вызвать общедоступный метод из других классов, используя экземпляр класса. Например, метод FindMax принадлежит NumberManipulator class, вы можете вызвать его из другого класса Test .
Живая демонстрацияusing System; namespace CalculatorApplication { class NumberManipulator { public int FindMax(int num1, int num2) { /* local variable declaration */ int result; if(num1 > num2) result = num1; else result = num2; return result; } } class Test { static void Main(string[] args) { /* local variable definition */ int a = 100; int b = 200; int ret; NumberManipulator n = new NumberManipulator(); //calling the FindMax method ret = n.FindMax(a, b); Console.WriteLine("Max value is : {0}", ret ); Console.ReadLine(); } } }
Когда приведенный выше код скомпилирован и выполнен, он дает следующий результат —
Max value is : 200
Рекурсивный вызов метода
Метод может вызывать сам себя. Это называется рекурсией. . Ниже приведен пример вычисления факториала для заданного числа с использованием рекурсивной функции —
Живая демонстрацияusing System; namespace CalculatorApplication { class NumberManipulator { public int factorial(int num) { /* local variable declaration */ int result; if (num == 1) { return 1; } else { result = factorial(num - 1) * num; return result; } } static void Main(string[] args) { NumberManipulator n = new NumberManipulator(); //calling the factorial method {0}", n.factorial(6)); Console.WriteLine("Factorial of 7 is : {0}", n.factorial(7)); Console.WriteLine("Factorial of 8 is : {0}", n.factorial(8)); Console.ReadLine(); } } }
Когда приведенный выше код скомпилирован и выполнен, он дает следующий результат —
Factorial of 6 is: 720 Factorial of 7 is: 5040 Factorial of 8 is: 40320
Передача параметров в метод
Когда вызывается метод с параметрами, вам необходимо передать параметры методу. Существует три способа передачи параметров в метод —
Серийный номер | Механизм и описание |
---|---|
1 | Параметры значения Этот метод копирует фактическое значение аргумента в формальный параметр функции. В этом случае изменения параметра внутри функции не влияют на аргумент.
|
2 | Справочные параметры Этот метод копирует ссылку на ячейку памяти аргумента в формальный параметр. Это означает, что изменения, внесенные в параметр, влияют на аргумент.
|
3 | Выходные параметры Этот метод помогает возвращать более одного значения.
|
Язык C