C#的静态构造函数

        “静态构造函数”典型应用于第一次使用类时的初始化工作,注意“第一次”,意思是它只执行一次。

        有同学说了,类的初始化不是有构造函数嘛?我们回答:构造函数是每个实例被声明时都会执行的,它属于每一个实例,而静态构造函数却属于这个类本身。

        比如,现在各大学校马上开学了,这有个学号问题,学校规定:2013年入学的学生的学号统一编为“13xxxx”。那么这个初始值13xxxx就是这个学生这个类群共有的一个牲,而并不是属于某一个学生;而学号、姓名等都是某个学生独有的属性。

        根据静态构造函数只执行一次的特征,学校学生管理系统在某个配置文件里写了“130001”这个数字,学校管理系统一运行立马读取了这个数字,管理系统一看,噢,让我从130001开始编学号啊!

        代码编写时,我们先来建一个学生类

class Student
    {
        //先建立这个类所有的一个属性:起始学号
        private static int _startNumber;
        //静态构造函数用于读取配置文件或数据库中所设的起始数字。
        static Student()
        {
            _startNumber = 130001;      //假设这里我们是从配置文件中读取的130001
        }

        //学号字段
        private int _code;
        //学号属性
        public int Code
        {
            get { return _code; }
            set { _code = value; }
        }

        //每次实例对象的时候学号自增1
        public Student()
        { 
            this._code=(_startNumber++);
        }


我们实例两个学生试试:

class Program
    {
        static void Main(string[] args)
        {
            Student s1 = new Student();
            Console.WriteLine(s1.Code);

            Student s2 = new Student();
            Console.WriteLine(s2.Code);
        }
    }


结果:

130001

130002


        

原文地址:https://www.cnblogs.com/keanuyaoo/p/3299529.html