对于如何为静态类创建构造函数有什么解决办法吗?
我需要一些数据被加载时,类初始化,但我需要一个,而且只有一个对象。
静态构造函数如下所示
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 constructor
像这样:
static class YourClass { static YourClass() { //initialization } }
静态类不能有实例构造函数(与公认的答案不同)。但是,类可以具有静态构造函数。这完全不一样。