zoukankan      html  css  js  c++  java
  • 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();
            }
        }

    有继承的情况

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

    • 继承类静态成员变量初始化
    • 继承类静态构造函数调用
    • 继承类实例变量初始化
    • 基类静态静态成员变量初始化
    • 基类静态构造函数调用
    • 基类实例变量初始化
    • 基类构造方法调用
    • 继承类构造方法调用
  • 相关阅读:
    Python自动化开发课堂笔记【Day02】
    Python自动化开发课堂笔记【Day01】
    Python自动化开发课堂笔记【Day01】
    Python自动化开发课堂笔记【Day01】
    SOCKET.IO 前后端使用
    socket.io的emit使用清单
    nodejs 教程
    斗地主滑动选牌&&出牌
    Cocos Creator大厅+子游戏模式
    cocoscreator热更新
  • 原文地址:https://www.cnblogs.com/leiwei/p/3442507.html
Copyright © 2011-2022 走看看