Я понимаю, что объявление делегата выглядит примерно так:
public delegate int PerformCalculation(int x, int y);
Однако, должно быть больше. Цель делегата - предоставить указатель на метод и сделать это, чтобы инкапсулировать ссылку на метод в делегате.
Какая структура эта ссылка содержится внутри (внутри делегата)? Я также понимаю, что вы можете инкапсулировать ссылку на несколько методов в делегате. Означает ли это, что в делетете содержится массив?
Также, какие методы определены в делегате и т.д. Что действительно происходит, когда вы объявляете делегата с кратким:
public delegate int PerformCalculation(int x, int y);
?
РЕДАКТИРОВАТЬ: Некоторые пояснения. Когда вы объявляете делегата, компилятор автоматически создает закрытый класс, который наследует от System.MulticastDelegate для вас. Вы можете это увидеть, если посмотреть на свою сборку с помощью ildasm. Это аккуратно. В принципе, с одним утверждением вы получаете весь новый класс, сгенерированный для вас во время компиляции, и он обладает всеми необходимыми функциями.