为静态方法调用EventHandlers

时间:2013-04-05 08:55:40

标签: c# static

我有一个类有两个静态方法A()和B() 这里A()方法需要订阅一些事件,如:

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

我将它们保存在类的构造函数中,但它不适用于静态方法实际上当控件传递给静态方法时,它不会通过构造函数。
在这里,我想要两件事:

  1. 如何在类中设置eventhandler,以便可以通过静态方法保存?
  2. 如何订阅和取消订阅它们以使它们不能重叠?

1 个答案:

答案 0 :(得分:0)

您可以尝试在静态构造函数中执行您想要执行的操作。

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

请注意,您只能在此处使用静态属性,字段,事件等。如果您的对象是单例,那么还有其他含义,您应该阅读Jon Skeet关于C#中单例实现的文章,以获得完整的视图。