-2

メイン フォームがサブスクライブできるイベントを作成しようとしています。このクラスは最終的に大きくなります。これは、Windows イベント ビューアーに情報/警告/エラー情報を表示するためのものですが (その部分はまだ実行していません)、フォーム情報にも送信します。私は多くの場所でイベントを使用してきましたが、静的クラスでイベントを作成しようとするのはこれが初めてです。問題があるとは思いませんでしたが、「raiseEventtoForm: 静的クラス内でインスタンス メンバーを宣言できません」というエラーが表示されます。

私のメンバーはすべて静的です。なぜこれが起こっているのかわかりません。

静的クラスでイベントを生成することはできませんか? 許可されていないことを示すものは何も見つかりません。

編集: static キーワードを持たないようにデリゲートを更新しました。

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 に答える