Высокоуровневые методы информатики и программирования. Тузовский А.Ф. - 71 стр.

UptoLike

Составители: 

71
ров, то фактических параметров должно быть не меньше n (соответст-
вие по числу). Каждому i-му формальному параметру (для всех i от 1
до n-1) ставится в соответствие i-й фактический параметр. Послед-
нему формальному параметру, при условии, что он объявлен с ключе-
вым словом params, ставятся в соответствие все оставшиеся фактиче-
ские параметры (соответствие по порядку). Если формальный пара-
метр объявлен с ключевым словом ref или out, то фактический пара-
метр должен сопровождаться таким же ключевым словом в точке вызо-
ва (соответствие по статусу).
Если у формального параметра задан тип T, то выражение, за-
дающее фактический параметр, должно быть согласовано по типу с ти-
пом T, т.е. совпадать с типом T; являться его потомком (соответствие
по типу) или допускать преобразование к типу T (как и при выполне-
нии операции присваивания).
Если формальный параметр является выходным объявлен с клю-
чевым словом ref или out, то соответствующий фактический параметр
не может быть выражением, поскольку используется в левой части опе-
ратора присваивания; следовательно, он должен быть именем, которому
можно присвоить значение.
4.2.3. Выполнение вызова метода
При вызове метода выполнение начинается с вычисления факти-
ческих параметров, которые являются выражениями. Для простоты по-
нимания вызова методов можно полагать, что в точке вызова создается
блок, соответствующий телу метода реальности все значительно эф-
фективнее). В этом блоке происходит замена имен формальных пара-
метров фактическими параметрами. Для выходных параметров, для ко-
торых фактические параметры также являются именами, эта замена или
передача параметров осуществляется по ссылке, то есть заменяет
формальный параметр ссылкой на реально существующий объект, за-
данный фактическим параметром. Чуть более сложным является вызов
по значению, применяемый к формальным параметрам, которые объяв-
лены без ключевых слов ref или out. При вычислении выражений, за-
данных такими фактическими параметрами, их значения присваиваются
специально создаваемым переменным, локализованным в теле испол-
няемого блока. Имена этих локализованных переменных и подставля-
ются вместо имен формальных параметров. Понятно, что тип локализо-
ванных переменных определяется типом соответствующего формально-
го параметра. Задание значений фактических параметров формальным
параметрам выполняется так же, как и в операторе присваивания.