0

2 つの静的メソッド A() と B() を持つ 1 つのクラスがあります。
ここで A() メソッドは、次のようないくつかのイベントをサブスクライブする必要があります。

push.Events.OnDeviceSubscriptionExpired += new PushSharp.Common.ChannelEvents.DeviceSubscriptionExpired(Events_OnDeviceSubscriptionExpired); 
push.Events.OnDeviceSubscriptionIdChanged += new PushSharp.Common.ChannelEvents.DeviceSubscriptionIdChanged(Events_OnDeviceSubscriptionIdChanged); 

それらをクラスのコンストラクターに保持しましたが、静的メソッドでは機能しません実際には、コントロールが静的メソッドに渡されるときに、コンストラクターを通過しません。
ここで、次の 2 つのことが必要です。

  1. クラスでイベントハンドラを設定して、静的メソッドで保存できるようにする方法は?
  2. それらが重複しないように購読および購読解除する方法は?
4

1 に答える 1

0

静的コンストラクターでやりたいことを試すことができます。

public class MyClass
{
    static MyClass()
    {
       // TODO : Attach your static event handlers here
    }
}

ここでは、静的プロパティ、フィールド、イベントなどしか使用できないことに注意してください。オブジェクトがシングルトンの場合は、他にも影響があります。全体像を把握するには、C# でのシングルトンの実装に関する Jon Skeet の記事を読む必要があります。

于 2013-04-05T09:03:40.120 に答える