静态构造函数

写在前面的话函数

对于构造函数,咱们都很熟悉,用于在实例化类的时候,使用new关键字,new出一个实例来供使用。spa

那么对于静态构造函数,充当的是什么角色呢,它和非静态构造函数有什么区别呢?它又有什么好处呢?日志

描述继承

静态构造函数用于初始化任何静态数据(静态方法里只能引用静态字段,静态构造函数也属于静态方法的一种)。编译器

静态构造方法在建立第一个实例或引用类的静态变量以前,会自动调用静态构造函数。string

特色:编译

1.静态构造函数没有修饰符,也没有参数class

2.静态构造方法没法继承,且没法手动调用变量

3.无参数的静态构造函数能够和无参数的非静态函数共存(尽管方法前面相同,可是一个属于类,一个属于实例)构造函数

4.若是类中含有带初始值的静态成员,那么编译器会生成默认的静态构造函数

典型应用:

当类使用日志文件时,能够使用这种构造函数,向其中写入日志。

示例:

    public class Person
    {
        static string name = "张三";

        static Person()
        {
            /*
             * 若是注释下面的话
               * 则GetName方法返回 张三
               * 不然返回 李四
               */   
             name = "李四";
        }

        public string GetName()
        {
            return Person.name;
        }
    }

咱们来新建一个Student类,让它继承自Person类,看看GetName方法会出现获得什么呢?

    public class Student : Person
    {
        
    }
此时,GetName方法获取的值仍然是 李四。此代码等同于:
    public class Student : Person
    {
        public Student()
            : base()
        {

        }
    }
注意:
若是有子类继承自带静态构造方法的类时,子类必须有空构造函数,不然会报错。
相关文章
相关标签/搜索