• C#类的初始化


    类的构造函数

    类的构造函数,有实例构造函数和静态构造函数。如果我们没有构造函数,系统会为我们生成一个默认构造函数,如果我们已经定义了构造函数,系统就不会再为我们生成构造函数。

    class SimpleClass
        {
            // Static variable that must be initialized at run time.
            static readonly long baseline;
    
            // Static constructor is called at most one time, before any
            // instance constructor is invoked or member is accessed.
            static SimpleClass()
            {
                baseline = DateTime.Now.Ticks;
            }
        }

    没有继承的情况

    先考虑一个类的情况,不考虑类的继承。

    • 静态变量
    • 静态构造函数
    • 非静态变量
    • 非静态构造函数
    class Class1
        {
            public static int Count = 0;
            static Class1()
            {
                Count++;
            }
            public Class1()
            {
                Count++;
            }
        }

    看下面的代码,当弟一次实例化时, Count值变成2,  当第二次实例化时, 则不会执行静态构造函数与静态变量.  此时Count的值变成3.   所以,最后结果Count值为3

    class MyClass
        {
            public static void Main()
            {
                Class1 c = new Class1();
                Class1 cc = new Class1();
                Console.WriteLine(Class1.Count.ToString());
                Console.Read();
            }
        }

    有继承的情况

    如果类有基类,那么基类和子类的初始化顺序如下:

    • 继承类静态成员变量初始化
    • 继承类静态构造函数调用
    • 继承类实例变量初始化
    • 基类静态静态成员变量初始化
    • 基类静态构造函数调用
    • 基类实例变量初始化
    • 基类构造方法调用
    • 继承类构造方法调用
  • 相关阅读:
    JavaScript日期处理类库momentjs
    sublime text 2 学习
    node.js代理设置
    使用nodejs将html5 canvas base64编码图片保存为文件
    Sublime Text 2 常用插件介绍
    把silverlight treeview 节点前面的小三角换成自定义的图片
    文件监控
    linux内核中的红黑树代码解析
    static关键字
    红黑树的实现(二)
  • 原文地址:https://www.cnblogs.com/leiwei/p/3442507.html
Copyright © 2020-2023  润新知