C#静态类构造函数

C#静态类构造函数,c#,class,static,constructor,C#,Class,Static,Constructor,关于如何为静态类创建构造函数,是否有解决方法 初始化类时,我需要加载一些数据,但我只需要一个对象。静态构造函数如下所示 static class Foo { static Foo() { // Static initialization code here } } 第一次使用类型时,仅执行一次。所有类都可以有静态构造函数,而不仅仅是静态类。C#有一个用于此目的的静态构造函数 static class YourClass { static You

关于如何为静态类创建构造函数,是否有解决方法


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

静态构造函数如下所示

static class Foo
{
    static Foo()
    {
         // Static initialization code here
    }
}
第一次使用类型时,仅执行一次。所有类都可以有静态构造函数,而不仅仅是静态类。

C#有一个用于此目的的静态构造函数

static class YourClass
{
    static YourClass()
    {
        // perform initialization here
    }
}
来自MSDN

静态构造函数用于初始化任何静态数据,或 执行只需执行一次的特定操作。信息技术 在创建第一个实例或任何 静态成员被引用


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

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

    }
    public static void Add1()
    { 

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

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

 Employee1.EmployeeName = "kumod";
        Employee1.Add();
        Employee1.Add();

可以使用静态构造函数初始化静态变量。静态构造函数将是类的入口点

public class MyClass
{

    static MyClass()
    {

        //write your initialization code here
    }

}

我们可以创建静态构造函数

static class StaticParent 
{
  StaticParent() 
  {
    //write your initialization code here

  }

}
而且它总是无参数的

static class StaticParent
{
    static int i =5;
    static StaticParent(int i)  //Gives error
    {
      //write your initialization code here
    }
}

而且它没有访问修饰符

静态构造函数
,只调用所创建类的第一个实例

像这样:

static class YourClass
{
    static YourClass()
    {
        //initialization
    }
}

请注意,
YourClass
不要求是
static
。公平地说,原始海报确实明确询问了静态类的构造函数。静态构造函数没有访问修饰符,这实际上是一个编译错误“在创建第一个实例或引用任何静态成员之前自动调用”