Рассмотрим следующий класс:
public class Event<T>
{
public delegate void Handler<t>(t msg);
private event Handler<T> E;
public void connect(Delegate handler) {
E += delegate(T msg) {
object target = handler.Target;
if (Invokable(target) {
target.BeginInvoke(handler, new object[] { msg });
}
};
}
public void emit(T msg) {
if ( E != null ) {
E(msg);
}
}
private static bool Invokable(object o) {
// magic
}
}
Как мне реализовать Invokable()
и что еще мне нужно для компиляции этого кода?Единственная другая проблема, о которой я знаю, - это вызов target.BeginInvoke
, так как цель - object
.