C#静态类构造函数

jM2*_*.me 117 c# static constructor class

有没有解决如何为静态类创建构造函数?

我需要在初始化类时加载一些数据,但我需要一个且只需要一个对象.

Jar*_*d S 207

为此,C#有一个静态构造函数.

static class YourClass
{
    static YourClass()
    {
        // perform initialization here
    }
}
Run Code Online (Sandbox Code Playgroud)

来自MSDN:

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

MSDN链接

.

  • 公平地说,原始海报确实专门询问静态类的构造函数. (28认同)
  • 请注意,不要求"YourClass"为"静态". (15认同)

Sve*_*ven 42

静态构造函数看起来像这样

static class Foo
{
    static Foo()
    {
         // Static initialization code here
    }
}
Run Code Online (Sandbox Code Playgroud)

首次使用该类型时,它仅执行一次.所有类都可以有静态构造函数,而不仅仅是静态类.


小智 5

是的,静态类可以有静态构造函数,这个构造函数的用途就是静态成员的初始化。

static class Employee1
{
    static int EmpNo;
    static Employee1()
    {
        EmpNo = 10;
        // perform initialization here
    }
    public static void Add()
    { 

    }
    public static void Add1()
    { 

    }
}
Run Code Online (Sandbox Code Playgroud)

当您可以访问类名为Class1的静态类的任何类型成员时,静态构造函数仅被调用一次

假设您正在访问第一个 EmployeeName 字段,那么这次调用构造函数,之后即使您将访问相同类型的成员,也不会调用它。

 Employee1.EmployeeName = "kumod";
        Employee1.Add();
        Employee1.Add();
Run Code Online (Sandbox Code Playgroud)