Методы в C#
Методы также называются функциями. Методы позволяют определить логику в одном месте и использовать ее в нескольких местах.
Синтаксис:
[attributes] access-modifier return-type method-name(parameters) { MethodBody }
В будущих статьях мы узнаем атрибуты и модификаторы доступа.
Тип возврата может быть любым допустимым типом данных или void.
Имя метода - любое значащее имя для вашей функции.
Параметры являются необязательными, если вы хотите передать любые аргументы
Приведем пример для записи нечетных чисел.
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; } } } }
или мы можем написать:
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:
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 аргументов внутри метода.
Мы примем пример, чтобы лучше понять его.
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 указывают на разные ячейки памяти. Таким образом, в операции одна переменная не влияет на другую переменную.
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.
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; } } }
В приведенном выше примере мы хотим, чтобы наш метод возвращал более одного параметра. поэтому нам нужно определить ключевое слово в определении метода и при вызове метода.
Массивы параметров:
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 - аргументы метода.