在一个类中只运行一次代码

本文关键字:运行 代码 一次 一个 | 更新日期: 2023-09-27 18:26:58

我需要将一个事件处理程序附加到一个对象,并将此代码放在一个按钮单击事件上。然而,我注意到,这将导致每次单击都会多次附加同一事件。

有没有一种方法可以在创建类时运行一段代码?有问题的类是一个静态类,顺便说一下

我可以做一些类似的事情:

if (bool == false)
{
attach event handler;
bool = true;
}

只是不确定这样做是否正确。谢谢。

在一个类中只运行一次代码

有一些静态构造函数,(原则上)每个类只运行一次。

类似这样的东西:

public static class MyStaticClass
{
   public static int MyStaticProperty;
   //no accessors required, as this is never explicitly invoked
   static MyStaticClass() //no parameters either
   {
      MyStaticProperty = 100;
   }
}
....
//writes: 100
Console.WriteLine(MyStaticClass.MyStaticProperty);

然而,如果构造函数不这样做,因为你有一些参数需要设置,或者有一些先决条件的步骤需要完成,我确实建议你进行私有布尔检查,就像你所做的那样。

您使用构造函数-它将在创建类时运行。

构造函数是在创建类或结构的对象时执行的类方法。它们与类或结构同名,通常初始化新对象的数据成员。

对于静态类,使用静态构造函数:

静态构造函数用于初始化任何静态数据,或执行只需要执行一次的特定操作。它是在创建第一个实例或引用任何静态成员之前自动调用的。

尝试

if(Button1.Click == null)
  Button1.Click += new System.EventHandler(this.myEventHandler);