在Test.AEventHandler给我错误:不可调用...不能用作方法。 我不知道我错在哪里:(。
你能告诉我为什么不工作吗?谢谢!
Class Program
{
static void Main(string[] args)
{
Test first = new Test();
first.send += Test.AEventHandler(onMessage);
}
public void onMessage(Message m)
{
Console.Writeln("It works!!!!");
}
....
}
Class Test
{
public delegate void AEventHandler(Message m);
public event AEventHandler send;
public void msg1(Message m)
{
if(send!=null)
send(m);
}
......
}
注意:消息是我定义的类型...
如果可以,请修改我的代码。
答案 0 :(得分:1)
首先将onMessage
方法更改为static
,因为Main
方法是静态的。您无法从static
上下文中访问非静态方法:
public static void onMessage(Message m)
然后附上你的事件处理程序:
first.send += new Test.AEventHandler(onMessage);
或简短版本:
first.send += onMessage;