F # IEvent.create - PullRequest
       2

F # IEvent.create

2 голосов
/ 17 декабря 2010

Куда это ушло?

let triggerFindNext,findNextEvent = IEvent.create<EventArgs>()

Поле, конструктор или член 'create' не определены

может быть, мне нужно добавить для этого какой-нибудь Framework?

1 Ответ

5 голосов
/ 17 декабря 2010

Функция 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...