Для полноты, вот (надеюсь, полный) список вариантов, когда вам придётся объявлять делегат:
- Когда список аргументов чересчур длинный (для .NET 4+ более 16 аргументов, для .NET 3.5 больше 4 аргументов)
- Когда ваши аргументы содержат
ref,outилиparams. - Если ваш делегат рекурсивен (например
delegate D D(D d)). Как ни странно, такие штуки иногда нужны. - Если вы хотите дать «говорящие» имена аргументам вашего делегата (аргументы
Action/Funcназываютсяarg1,arg2и т. д.).
Добавлю. Еще свои делегаты нужны, когда есть параметры с совпадающими типами, но разным значением. Потому что очень сложно понять, что же такое вообще делает делегат
Func<MyClass, MyClass, object> :) 31 янв '16 в 11:27
Комментариев нет:
Отправить комментарий