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

Рассмотрим более подробно, каким образом метод обменивается информацией с вызвавшим его кодом. При вызове метода выполняются следующие действия:

1. Вычисляются выражения, стоящие на месте аргументов.

2. Выделяется память под параметры метода в соответствии с их типом.

3. Каждому из параметров сопоставляется соответствующий аргумент (аргумен­ты как бы накладываются на параметры и замещают их).

4. Выполняется тело метода.

5. Если метод возвращает значение, оно передается в точку вызова; если метод
имеет тип void, управление передается на оператор, следующий после вызова.

При этом проверяется соответствие типов аргументов и параметров и при необ­ходимости выполняется их преобразование. При несоответствии типов выдается диагностическое сообщение. Листинг 5.3 иллюстрирует этот процесс.

Листинг 5.3. Передача параметров методу

using System;

namespace ConsoleApplication1

{

class Class1

{

static int Max(int a, int b)

// метод выбора максимального значения

{

if (а > b) return a;

else return b;

}

static void Main()

{

int a = 2, b = 4;

int x = Max(a, b); // вызов метода Max

Console.WriteLine(x); // результат: 4

short t1 = 3, t2 = 4;

int у = Max(t1, t2); // вызов метода Max

Console.WriteLine(у); // результат: 4

int z = Max(a + t1, t1 / 2 * b); // вызов метода Max

Console.WriteLine(z); // результат: 5

}

}

}

В классе описан метод Mах, который выбирает наибольшее из двух переданных ему значений. Параметры описаны как а и b. В методе Main выполняются три вы­зова Мах. В результате первого вызова методу Мах передаются два аргумента того же типа, что и параметры, во втором вызове — аргументы совместимого типа, в третьем — выражения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: