在重写我的事件调用函数以通用地处理事件及其参数之后,我开始检查我的代码(以匹配更改),我注意到编译器隐式地进行了通用调用。
这是我的功能:
private void InvokeEvent<TArgs>(EventHandler<TArgs> invokedevent, TArgs args)
where TArgs : EventArgs
{
EventHandler<TArgs> temp = invokedevent;
if (temp != null)
{
temp(this, args);
}
}
这是调用函数的行:
InvokeEvent(AfterInteraction, result);
这编译没有问题,智能感知甚至显示“正确”调用(带有部分)。
这是一个编译器特性(泛型类型实际上可以直接从第二个参数推断出来),还是我会因为什么都没有而发疯而错过重点?