Операция вызова

Операция вызова используется для вызова метода.

invocation-expression:

primary-expression [< type-listopt >]  ( argument-listopt )

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

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

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

Примечание: В текущей реализации доступен вызов универсальных методов, реализованных с помощью других языков программирования и содержащихся в импортируемых библиотеках. Разработка универсальных методов с помощью языка Fore.NET не поддерживается.

Результат операции вызова классифицируется следующим образом:

Вызовы методов

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

Обработка операции вызова метода в форме M(A), где M – группа методов, а A – опциональный перечень аргументов, во время компиляции производится следующим образом:

Вызовы делегатов

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

Обработка операции вызова метода в форме D(A), где D – первичное выражение типа-делегата, а A – опциональный перечень аргументов, во время выполнения производится следующим образом:

См. также:

Первичные выражения