【发布时间】:2011-06-14 20:47:42
【问题描述】:
当我尝试将成员函数(来自 SoundManager 类)传递给委托(在 EventManager 中)时,出现编译器错误。
错误:参数 2:无法从“方法组”转换为“Event_Sharp.FunctionHandler”
代码:
public delegate void FunctionHandler(IEvent evnt);
事件管理器::
public void RegisterListener(int type, FunctionHandler handler)
{
// ...
}
SoundManager.cs(构造函数):
EventManager.Instance.RegisterListener(Event_Bullet_Fired.GetType(), HandleBulletFired );
HandleBulletFired 是 SoundManager 的成员:
void HandleBulletFired(Event_Bullet_Fired evnt)
{
// ...
}
并且,Event_Bullet_Fired 实现了 IEvent 接口。有人可以告诉我为什么会出现此错误以及为什么不能将 HandleBulletFired 用作委托吗?
【问题讨论】:
标签: c# delegates compiler-errors function-pointers