Я только что добавил слабую реализацию события в проект, используя класс Dustin Campbell WeakEvent. Хотя слепо с использованием кода, который я нашел в Интернете и торговле; как правило, плохая идея, это гораздо лучшая реализация, чем то, что я ранее взломал. Кажется, что это хорошо работает до сих пор, но, чтобы понять код, я натолкнулся на следующее:
public class WeakEventHandler<T, E> : IWeakEventHandler<E>
where T : class
where E : EventArgs
{
private delegate void OpenEventHandler(T @this, object sender, E e);
...
Я использую объявление типов делегатов только с аргументами object sender
и EventArgs args
, так что же делает цель T @this
? Очевидно, что он объявляет что-то типа WeakEventHandler
T
generic, но я никогда не видел @this
раньше (и googling это, по понятным причинам, безнадежно).