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

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

Вызов делегата, содержащего более чем один элемент в списке вызовов, производится путем поочередного синхронного вызова методов в списке вызовов. Каждый метод вызывается с набором аргументов, переданным при вызове делегату. Если делегат имеет выходные параметры (Out) или возвращаемое значение, то их конечные значения получаются при вызове последнего метода из списка.

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

Попытка вызова пустого (Null) экземпляра делегата приводит к возбуждению исключительной ситуации типа System.NullReferenceException.

Пример

Пример вызова делегата приведен в подразделе Создание делегата.

См.также:

Делегаты