C#静态类构造函数

时间:2011-07-17 04:02:17

标签: c# class static constructor

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

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

7 个答案:

答案 0 :(得分:185)

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

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

来自MSDN

  

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

MSDN link

答案 1 :(得分:40)

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

static class Foo
{
    static Foo()
    {
         // Static initialization code here
    }
}

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

答案 2 :(得分:3)

静态构造函数

使用static modifier声明的构造函数是一个静态构造函数。静态构造函数用于初始化静态数据或执行需要在类的生命周期中仅执行一次的特定操作。静态构造函数是在类中执行的第一个代码块。静态构造函数在类的生命周期中执行一次且仅执行一次。它会自动调用。静态构造函数不接受任何参数。它没有访问说明符。它不是直接调用的。

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

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

答案 3 :(得分:2)

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

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();

答案 4 :(得分:0)

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

public class MyClass
{

    public static MyClass()
    {

        //write your initialization code here
    }

}

答案 5 :(得分:0)

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

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
    }
}

并且没有访问修饰符

答案 6 :(得分:0)

Static constructor仅调用创建的类的第一个实例。

像这样:

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