EventHandler成员不可调用作为方法

时间:2014-03-02 21:45:47

标签: c# events methods member

在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);
    }

    ......
}

注意:消息是我定义的类型...

如果可以,请修改我的代码。

1 个答案:

答案 0 :(得分:1)

首先将onMessage方法更改为static,因为Main方法是静态的。您无法从static上下文中访问非静态方法:

public static void onMessage(Message m)

然后附上你的事件处理程序:

 first.send += new Test.AEventHandler(onMessage);

或简短版本:

 first.send += onMessage;