Функция IEvent.create
устарела.Новый способ создания событий - создание экземпляра типа Event
.В простейшем случае вы можете написать только это:
let evt = new Event<EventArgs>()
// Trigger event (instead of first element of the tuple)
evt.Trigger()
// Returns IEvent<EventArgs> value (instead of second element of the tuple)
evt.Publish
Это представляет событие, использующее значение IEvent<_>
(и не генерирует .NET-совместимое событие, если вы представляете его как свойство), и оно использует generic Handler<_>
делегат из библиотек F #.
(Если вы хотите сгенерировать .NET-совместимое событие, используемое из C #, вам нужно добавить атрибут CLIEvent
, и вы можете использовать вариант Event
, который принимает делегат в качестве универсального параметра.как описано в ответе, уже упомянутом другими )
РЕДАКТИРОВАТЬ : я разместил более полный фрагмент F # (с более хорошим форматированием) здесь: http://fssnip.net/1d