包含C#中事件的共享(静态)类

时间:2010-03-27 07:49:49

标签: c# .net vb.net static

以下是我在Visual Basic中的操作示例:

Public Class Class1
    Public Shared WithEvents Something As New EventClass

    Public Shared Sub DoStuff() Handles Something.Test

    End Sub
End Class

Public Class EventClass
    Public Event Test()
End Class

如何在C#中执行此操作?

我知道C#中没有Handles子句,所以我需要调用一些函数并在那里分配事件处理程序。但是,因为它是一个共享类,所以没有构造函数;我必须把它放在函数之外的某个地方。

如何实现?

2 个答案:

答案 0 :(得分:2)

您可以使用静态构造函数...

static readonly EventClass _something;

static Class1()
{
  _something = new EventClass();
  _something.Test += DoStuff;
}

static void DoStuff()
{
}

答案 1 :(得分:1)

尝试以下

public static class Class1 {
  private static EventClass something;
  public static EventClass Something {
    get { return something; }
  }
  static Class1 {
    something = new Class1();
    something.Test += DoStuff;
  }

  public static void DoStuff() {
    ...
  }
}