C# 静态构造函数

转自:https://blog.csdn.net/cloproad/article/details/78874633

使用静态构造函数的一个原因是:在第一次使用类之前,用静态构造函数来初始化类(当然也包括结构体,这里用类做阐述)中一些静态字段或属性。比如对字段或属性进行一系列的操作进行初始化,而不希望每次实例化类的时候改变他,用静态构造函数比较方便。

public class MyClass
{
    static MyClass()
    {
 
    }
}

注意:静态构造函数没有访问修饰符,不能带任何参数,一个类只能有一个静态构造函数,只能访问类的静态成员(常量也是静态成员)他只是在第一次加载类的时候被调用。

如下所示:下面一个类有一个只读属性Day(只有get,没有set) 和一个静态构造函数,在静态构造函数中初始化该属性,返回今天是周几。

public class StaticConstructor 
{
 
    // 只读属性(只有get没有set)
    public static  int Day{get;}
    static StaticConstructor()
    {
        // DateTime 是system下的一个类,用来处理与时间相关,这里的Now是DateTime类的静态属性,用于返回本机时间(与你设定的日期时间一致)
        DateTime now = DateTime.Now;
        // DayOfWeek 属性返回一个DayOfWeek枚举值(0-6 分别对应 周日到周六)
        Day = (int)now.DayOfWeek;
    }    
}

注意:静态构造函数与无参数的实例构造函数可以同时存在,尽管参数列表相同,但是静态构造函数是在第一次加载类的时候调用,而实例构造函数是在创建类的实例对象时调用,所以他们不会有冲突。

原文地址:https://www.cnblogs.com/Peng18233754457/p/14644054.html