С# — Методы
Метод — это группа операторов, которые вместе выполняют задачу. В каждой программе 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