Основные отличия многоадресных и обычных делегатов в C#:
- Многоадресные делегаты могут содержать ссылки на несколько методов и при вызове вызывать их последовательно. www.shekhali.com Обычные делегаты содержат ссылку на один метод. www.shekhali.com
- Для добавления нескольких методов к многоадресному делегату можно использовать метод Delegate.Combine или оператор «+», а для удаления ссылки на метод из списка вызовов — оператор «-». www.shekhali.com
- При вызове нескольких методов с помощью многоадресного делегата все методы должны иметь одинаковую сигнатуру (типы параметров и тип возвращаемого значения должны совпадать), а тип возвращаемого значения — void. www.shekhali.com
Применение многоадресных делегатов особенно полезно при обработке событий, например, когда однократное нажатие на кнопку может привести к последовательному вызову нескольких методов. zabudsky.ru