Методы в 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 - аргументы метода.
