Я прохожу курс по разработке расширяемого программного обеспечения на множественном числе и в одном из слайдов, этот код появляется. До сих пор я понимаю делегата, что он используется для обозначения других методов, но я не могу понять, для чего здесь цель делегата, и если кто-нибудь может указать мне в правильном направлении, пожалуйста.Понимание делегатов Generics
ответ
Как написано там, это не очень полезно ... Они могли бы использовать Action<OrderItemProcessedEventArgs>
, и это было бы эквивалентно. (Action<>
является родовым делегат методы, которые ничего не возвращают. Его официальное описание что-то вроде Инкапсулирует метод, который имеет один параметр и не возвращает значение.)
Делегат, как написано (и Action<OrderItemProcessedEventArgs>
) представляют метод, который возвращает void
(так что ничего не возвращает) и принимает один аргумент OrderItemProcessedEventArgs
. Так, например:
public void MyMethod(OrderItemProcessedEventArgs arg)
{
}
будет способом, совместимым с этим делегатом.
Теперь ... этот большой блок кода создает CommerceEvents
, который представляет собой контейнер событий (не C# - event
s, непосредственно делегирует), что некоторые фрагменты кода могут «подписаться», назначив методы свойства (OrderItemProcessed
в этом случае). Некоторые другие коды, при необходимости, вызовут OrderItemProcessed(someOtherItemProcessedEventArgs)
, передав «дескриптор», почему было выполнено «событие» (класс OrderItemProcessedEventArgs
)
Делегат вы заявили, представляет какой-либо метод, который принимает общий T аргумент и возвращает ничтожным. T может быть любым классом. Вы также можете ознакомиться с делегатами Func и Action, которые также носят общий характер.
- 1. Понимание делегатов
- 2. Понимание потока делегатов
- 3. Понимание делегатов и задачи
- 4. Понимание многопоточности, делегатов и статических
- 5. Понимание лямбда-выражений и делегатов
- 6. Понимание точки делегатов на C#
- 7. Понимание C# generics намного лучше
- 8. Понимание .Net Generics - Bank Domain
- 9. Понимание делегатов в UITableView и UITableViewController
- 10. Понимание принципа правды в рекламе Java Generics
- 11. Понимание Java Generics - Это можно сделать лучше?
- 12. Понимание типа, назначаемого при использовании методов/типов generics
- 13. Java generics generics
- 14. Generics or not Generics
- 15. Лучшая (общая) декларация делегатов Func
- 16. Очередь делегатов NSURLSession
- 17. Delphi 2010 Generics of generics
- 18. Swift Generics (тип substitution?)
- 19. Объединение делегатов
- 20. Копирование делегатов
- 21. Использование делегатов
- 22. Вопросы делегатов
- 23. Преимущества делегатов
- 24. TaskWrapper - путаница потоков и делегатов
- 25. Java Generics Curiosity
- 26. Множественная вариационная система делегатов
- 27. Как использовать generics generics в java-интерфейсах
- 28. C# Generics - Справка по синтаксису
- 29. Java generics
- 30. generics question
ok. делегаты, которых я знаю, они используются как этот CommerceModuleDelegate = pointtoamethod, а затем CommereceModuleDelegate («Passsomevalue»). Однако в этом случае он передает класс в качестве параметра, но где он будет выполнен? – Baahubali
@ user1490835 Прочитать добавленную часть – xanatos
@ user1490835 Они реализуют шаблон [Observer] (https://en.wikipedia.org/wiki/Observer_pattern), с тем, что вызывается в wiki *, поддерживает список своих иждивенцев, называемый наблюдатели * являются свойством 'OrderItemProcessed'. – xanatos