我想动态设置的自定义事件处理程序是这样的伪code列表:
I'd like to dynamically set a list of custom event handlers something like this in pseudo-code:
FieldInfo[] fieldInfos = this.GetType().GetFields(
BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly);
foreach (FieldInfo fieldInfo in fieldInfos)
{
if this.fieldInfo.GetType() = TypeOf(CustomEventHandler<this.fieldInfo.Name>) {
this.fieldInfo.Name += new CustomEventHandler<this.fieldInfo.Name>(OnChange<this.fieldInfo.Name>);
}
}
我找不到正确的语法可以吗?
I can't find the right syntax can you ?
如何GetEvents而不是GetFields?
How about GetEvents instead of GetFields?
var t = something.GetType();
var eventInfos = t.GetEvents();
foreach (var info in eventInfos)
{
if (info.EventHandlerType == TypeOf(CustomEventHandler<this.fieldInfo.Name>)
info.AddEventHandler(...);
}
我不完全肯定了类型比较,但话又说回来, fieldInfo.Name
不能在一个通用的那样使用。
I'm not totally sure about the type-comparison, but then again, fieldInfo.Name
can't be used in a generic like that.