Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторные / Лаб.раб.5С#.doc
Скачиваний:
95
Добавлен:
21.03.2015
Размер:
210.43 Кб
Скачать

Тело метода

Синтаксически тело метода является блоком, который представляет собой последовательность операторов и описаний переменных, заключенную в фигурные скобки. Если речь идет о телефункции, то вблокедолжен быть хотя бы один оператор перехода, возвращающий значениефункциив формеreturn (выражение).

Переменные, описанные в блоке, считаются локализованными в этомблоке. В записи операторовблокаучаствуют имена локальных переменныхблока, имена полей класса и имена аргументов метода.

Вызов метода. Синтаксис

Метод может вызываться в выражениях или быть вызван как оператор. В качестве оператора может использоваться любой метод - как процедура, так ифункция. Конечно,функциюразумно вызывать как оператор, только если она обладает побочным эффектом. В последнем случае она вызывается ради своего побочного эффекта, а возвращаемое значение никак не используется. Подобную роль играет использование некоторых выражений с побочным эффектом в роли оператора, классическим примером является операторx++;.

Если же попытаться вызвать процедурув выражении, то это приведет к ошибке еще на этапе компиляции. Возвращаемоепроцедуройзначениеvoidнесовместимо с выражениями. Так что в выражениях могут быть вызваны толькофункции.

Сам вызов метода, независимо от того,процедураэто илифункция, имеет один и тот же синтаксис:

имя_метода([список_фактических_аргументов])

Если это оператор, то вызов завершается точкой с запятой. Формальный аргумент, задаваемый при описании метода - это всегда имя аргумента (идентификатор). Фактический аргумент - это выражение, значительно более сложная синтаксическая конструкция. Вот точный синтаксис фактического аргумента:

[ref|out]выражение

Между списком формальных и списком фактических аргументов должно выполняться определенное соответствиепо числу, порядку следования, типу и статусу аргументов. Если в первом спискеnформальных аргументов, то фактических аргументов должно быть не меньшеn(соответствиепо числу). Каждомуi-му формальному аргументу (для всехiот1доn-1) ставится всоответствиеi-й фактический аргумент. Последнему формальному аргументу, при условии, что он объявлен с ключевым словомparams, ставятся всоответствиевсе оставшиеся фактические аргументы (соответствиепо порядку).Если формальный аргумент объявлен с ключевым словом ref или out, то фактический аргумент должен сопровождаться таким же ключевым словом в точке вызова (соответствие по статусу).

Появление ключевых слов при вызове методов- это особенность языка C#, отличающая его от большинства других языков. Он направлен на повышение надежности программной системы, напоминая программисту о том, что данный фактический аргумент являетсявыходными значение его наверняка изменится послевызова метода. Если формальный аргумент объявлен с типомT, то выражение, задающее фактический аргумент, должно быть согласовано по типу с типомT: допускает преобразование к типуT, совпадает c типомTили является его потомком (соответствиепо типу).

Если формальный аргумент является выходным- объявлен с ключевым словомrefилиout, - то соответствующий фактический аргумент не может быть выражением, поскольку используется в левой части оператора присваивания; следовательно, он должен быть именем, которому можно присвоить значение.

Соседние файлы в папке лабораторные