zoukankan      html  css  js  c++  java
  • 静态构造函数

    写在前面的话

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

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

    描述

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

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

    特点:

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

    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()
            {
    
            }
        }
    注意:
    如果有子类继承自带静态构造方法的类时,子类必须有空构造函数,否则会报错。
  • 相关阅读:
    Programming asp.net笔记第三章 Controls: Fundamental Concepts
    Aspnet_regsql.exe命令行使用小结
    [转] 130道C#面试题
    [转]彻底搞定C指针-函数名与函数指针
    common softwares
    PS10.0教程视频
    正则表达式30分钟入门教程
    Windows Live Messenger Error 80040154 (Windows 7)
    Canvas translate() 绘制“米”字
    HTML5钟表【每日一段代码3】
  • 原文地址:https://www.cnblogs.com/loveYN/p/4509719.html
Copyright © 2011-2022 走看看