0

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

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

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

  1. 如何在类中设置事件处理程序以便可以通过静态方法保存?
  2. 如何订阅和取消订阅它们以使它们不能重叠?
4

1 回答 1

0

您可以尝试在静态构造函数中做您想做的事情。

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

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

于 2013-04-05T09:03:40.120 回答