C # 静态类构造函数

对于如何为静态类创建构造函数有什么解决办法吗?

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

153086 次浏览

静态构造函数如下所示

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

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

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

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

来自 MSDN :

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

MSDN 链路

.

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

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


}
public static void Add1()
{


}
}

和静态构造函数只有在您有权访问类名为 第一类的静态类的任何类型成员时才被调用一次

假设您正在访问第一个 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 constructor只调用创建的类的第一个实例。

像这样:

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

静态类不能有实例构造函数(与公认的答案不同)。但是,类可以具有静态构造函数。这完全不一样。