Содержание

Слайд 2

Методы Метод — это именованная часть программы, которая может вызываться из

Методы

Метод — это именованная часть программы, которая может вызываться из других

частей программы столько раз, сколько необходимо. Если переменные хранят некоторые значения, то методы содержат в себе набор операторов, которые выполняют определенные действия.
Общее определение методов выглядит следующим образом:
[модификаторы] тип_возвращаемого_значения название метода ([параметры])
{
// тело метода
}
Модификаторы и параметры необязательны.
Слайд 3

Создание и вызов методов Создание: Указать тип возвращаемого значения, если метод

Создание и вызов методов

Создание:
Указать тип возвращаемого значения, если метод ничего не

возвращает указать void.
Выбрать имя метода.
Если метод принимает аргументы – обязательно указать их тип и имя, если нет – оставить скобки () пустыми.
Если метод имеет возвращаемое значение, обязательно в теле метода должно присутствовать ключевое слово return. Тип возвращаемого значения метода должен соответствовать типу значения, указанному после ключевого слова return.
Вызов:
Написать имя метода.
Обязательно указать после имени скобки(), если метод принимает какие-то аргументы, передать соответствующее количество аргументов соответствующего типа.
Слайд 4

Возврат из метода и возврат значения static void Main(string[] args) {

Возврат из метода и возврат значения

static void Main(string[] args) {
string

message = Hello(); // вызов первого метода
Console.WriteLine(message);
Sum(); // вызов второго метода
Console.ReadLine();
}
static string Hello() {
return "Hello World!";
}
static void Sum() {
int x = 2;
int y = 3;
Console.WriteLine("{0} + {1} = {2}", x, y, x + y);
}

Здесь определены два метода:
Первый метод Hello возвращает значение типа string. Поэтому мы можем присвоить это значение какой-нибудь переменной типа string:
string message = Hello();
Второй метод - Sum - просто складывает два числа и выводит результат на консоль, при этом ничего не возвращает – ключевое слово void

Слайд 5

Параметры методов Параметры представляют собой переменные, которые определяются в сигнатуре метода

Параметры методов

Параметры представляют собой переменные, которые определяются в сигнатуре метода и

создаются при его вызове.
Существует два способа передачи параметров в метод в языке C#: по значению и по ссылке.
И при вызове этого метода в программе нам обязательно надо передать на место параметров значения, которые соответствуют типу параметра. Данные значения еще называют аргументами.

Передача по значению:

static int Sum(int x, int y){
return x + y;
}

Передача параметров по ссылке:

Для ref-параметра вы должны передать его инициализированным, и можете пользоваться его исходным значением. А для out-параметра вы не обязаны инициализировать его перед вызовом метода, не можете использовать его значение в методе до присваивания, и обязаны инициализировать его в методе.
Таким образом, out-параметр — это как бы дополнительное возвращаемое значение функции. А ref-параметр — просто параметр, изменения которого видны снаружи функции.
На уровне CLR для out- и ref-параметров используется один и тот же механизм, но это незначительная техническая подробность. Разница в семантике.

static void Main(string[] args){
string s1;
func1(out s1);
string s2 = "";
func2(ref s2);
Console.ReadLine();
}
private static void func1(out string value){
//value = "Hello World!";
Console.WriteLine(value); // нельзя, value не инициализировано
//if (false)
// return; // нельзя, забыли установить значение value
value = "Hello World!";
}
private static void func2(ref string value){
Console.WriteLine(value); // можно
if (false)
return; // не проблема, у value остаётся старое значение
value = "Hello World!";
}

Слайд 6

Необязательные параметры C# позволяет использовать необязательные параметры. Для таких параметров нам

Необязательные параметры

C# позволяет использовать необязательные параметры.
Для таких параметров нам необходимо

объявить значение по умолчанию.
Также следует учитывать, что после необязательных параметров все последующие параметры также должны быть необязательными:

static int OptionalParam(int x, int y, int z = 5, int s = 4){
return x + y + z + s;
}

Так как последние два параметра объявлены как необязательные, то мы можем один из них или оба опустить

static void Main(string[] args){
OptionalParam(2, 3);
OptionalParam(2, 3, 10);
Console.ReadLine();
}

Слайд 7

Именованные параметры В предыдущих примерах при вызове методов значения для параметров

Именованные параметры

В предыдущих примерах при вызове методов значения для параметров передавались

в порядке объявления этих параметров в методе. Но мы можем нарушить подобный порядок, используя именованные параметры

static int OptionalParam(int x, int y, int z = 5, int s = 4){
return x + y + z + s;
}
static void Main(string[] args){
OptionalParam(x: 2, y: 3);
//Необязательный параметр z использует значение по умолчанию
OptionalParam(y: 2, x: 3, s: 10);
Console.ReadLine();
}

Слайд 8

Массив параметров и ключевое слово params Используя ключевое слово params, мы

Массив параметров и ключевое слово params

Используя ключевое слово params, мы можем

передавать неопределенное количество параметров
На место параметра с модификатором params мы можем передать как отдельные значения, так и массив значений, либо вообще не передавать параметры.
Однако данный способ имеет ограничения: после параметра с модификатором params мы не можем указывать другие параметры

static void Addition(params int[] integers){
int result = 0;
for (int i = 0; i < integers.Length; i++)
{
result += integers[i];
}
Console.WriteLine(result);
}

static void Main(string[] args){
Addition(1, 2, 3, 4, 5);
int[] array = new int[] { 1, 2, 3, 4 };
Addition(array);
Addition();
Console.ReadLine();
}