C#静态类构造函数

问题描述 投票:106回答:6

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

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

c# class static constructor
6个回答
191
投票

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

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

来自MSDN:

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

MSDN link

.


40
投票

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

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

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


3
投票

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

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

3
投票

静态构造函数

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

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

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

0
投票

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

public class MyClass
{

    public static MyClass()
    {

        //write your initialization code here
    }

}

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

它没有访问修饰符

© www.soinside.com 2019 - 2024. All rights reserved.