Методы в C#
Методы также называются функциями. Методы позволяют определить логику в одном месте и использовать ее в нескольких местах.
Синтаксис:
1 2 3 4 5 |
[attributes] access-modifier return-type method-name(parameters) { MethodBody } |
В будущих статьях мы узнаем атрибуты и модификаторы доступа.
Тип возврата может быть любым допустимым типом данных или void.
Имя метода - любое значащее имя для вашей функции.
Параметры являются необязательными, если вы хотите передать любые аргументы
Приведем пример для записи нечетных чисел.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
namespace SampleMethod { class Program { public static void Main() { OddNumbers(); } public static void OddNumbers() { int Start = 1; while (Start <= 21) { Console.WriteLine(Start); Start = Start + 2; } } } } |
или мы можем написать:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
namespace SampleMethod { class Program { public static void Main() { Program a = new Program(); a.OddNumbers(); } public void OddNumbers() { int Start = 1; while (Start <= 21) { Console.WriteLine(Start); Start = Start + 2; } } } } |
Когда мы запустим консольную программу, она напечатает все нечетные числа от 1 до 21.
Когда вы пишете статический метод, вам не нужно создавать экземпляр метода, который вам нужен для создания экземпляра класса. В приведенном выше примере возвращаемый тип метода OddNumbers недействителен. но давайте возьмем пример с возвращаемым типом. Поэтому мы добавим метод int с типом возвращаемого целого числа. Он будет отображать сумму 2-х чисел 3 и 5:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
namespace SampleMethod { class Program { public static void Main() { Program a = new Program(); a.OddNumbers(); int sum = a.Add(3,5); Console.WriteLine(sum); } public int Add(int a , int b) { return a + b; } public void OddNumbers() { int Start = 1; while (Start <= 21) { Console.WriteLine(Start); Start = Start + 2; } } } } |
Статические и экземплярные методы:
- Когда объявление метода включает статический модификатор, который называется статическим методом, но когда нет модификатора доступа, известен как метод экземпляра.
- Статический метод вызывается с использованием имени класса, но метод экземпляра вызывается с использованием экземпляра класса
- Можно создать множественный экземпляр класса, и каждый экземпляр имеет свой собственный отдельный метод, но когда метод статичен, экземпляр этого метода отсутствует
Параметры метода:
У нас есть 4 типа параметров метода.
- Параметр параметра
- Он создает копию переданного параметра
- Справочный параметр
- Он относится к той же переменной, которая была передана в метод. Все изменения, внесенные в параметр в методе, будут отражены в этой переменной
- Параметр
- Вы можете использовать это, когда хотите, чтобы ваш метод возвращал более одного значения
- Массивы параметров
- Ключевое слово params позволяет создать переменную no аргументов внутри метода.
Мы примем пример, чтобы лучше понять его.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
namespace MethodParameters { class Program { public static void Main() { int i = 0; SimpleMethod(i); Console.WriteLine(i); } public static void SimpleMethod(int j) { j= 500; } } } |
В приведенном выше примере i и j указывают на разные ячейки памяти. Таким образом, в операции одна переменная не влияет на другую переменную.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
namespace MethodParameters { class Program { public static void Main() { int i = 0; SimpleMethod(ref i); Console.WriteLine(i); } public static void SimpleMethod(ref int j) { j= 500; } } } |
В приведенном выше примере i и j указывают на то же место памяти и имеют то же значение, что и 500.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
namespace MethodParameters { class Program { public static void Main() { int Sum = 0; int Product=0; Calculate(100,200,out Sum, out Product ); Console.WriteLine("Sum = {0} && Product = {1}", Sum, Product); } public static void Calculate(int a,int b, out int sum, out int product) { sum = a + b; product = a * b; } } } |
В приведенном выше примере мы хотим, чтобы наш метод возвращал более одного параметра. поэтому нам нужно определить ключевое слово в определении метода и при вызове метода.
Массивы параметров:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
namespace MethodParameters { class Program { public static void Main() { int[] Numbers = new int[3]; Numbers[0] = 100; Numbers[1] = 200; Numbers[2] = 300; ParamsMethod(Numbers); } public static void ParamsMethod(params int[] numbers) { Console.WriteLine("There are {0} elements", numbers.Length); foreach (int i in numbers ) { Console.WriteLine(i); } } } } |
Нам нужно использовать ключевое слово «params» для объявления параметра в методе method.it должен быть последним параметром в объявлении метода. Вы можете отправить список аргументов с разделителями-запятыми.
Параметры метода и аргументы метода.
Когда мы объявляем параметры в методе, они называются параметрами метода, но при вызове метода нам необходимо передать параметры, а id = s - аргументы метода.