簡體   English   中英

C#中具有事件的共享(靜態)類

[英]Shared (static) classes with events in C#

這是我將在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子句,因此我需要調用一些函數並在其中分配事件處理程序。 但是,由於它是一個共享類,所以沒有構造函數。 我必須將其放在函數外部。

如何實現?

您可以使用靜態構造函數...

static readonly EventClass _something;

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

static void DoStuff()
{
}

嘗試以下

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() {
    ...
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM