-2

我正在/正在尝试创建一个我的主表单可以订阅的事件。此类最终会更大,它用于向 Windows 事件查看器提供信息/警告/错误信息(尚未完成该部分),但它也会发送到表单信息。我在很多地方都使用过事件,但这是我第一次尝试在静态类中创建一个。我不认为会有任何问题,但我收到此错误“raiseEventtoForm:无法在静态类中声明实例成员”。

我所有的成员都是静态的——我不知道为什么会这样。

我不能在静态类中产生事件吗?我找不到任何表明我不会被允许的东西。

编辑:更新委托没有静态关键字。

public static class HABLAEvents
{
    public delegate void RaiseMessageEvent(string message, Color foreColor, Color backColor);
    public static event RaiseMessageEvent trigger = delegate { };
    public static void MessageEvent(string message, Color foreColor, Color backColor) { trigger(message, foreColor, backColor); }

    public static void raiseEventtoForm(string message, Color fc, Color bc)
    {
        MessageEvent(message, fc, bc);
    }
}

编辑:触发器和 MessageEvent 也存在相同的错误“不能在静态类中声明实例成员”

4

1 回答 1

1

在这里,举个例子:

using System;

public static class Test
{
    public static void Main()
    {
        EventsClass.someDelegateEvent += func;
        EventsClass.Raise();

    }


    public static void func(int number){
        Console.WriteLine(number);
    }

}

public static class EventsClass
{
    public delegate void someDelegate(int num);

    public static event someDelegate someDelegateEvent;

    public static void Raise()
    {
        if (someDelegateEvent != null)
        someDelegateEvent(6);
    }
}
于 2014-06-18T18:41:38.410 回答