• 构造函数和析构函数的调用顺序


    using System;

    public class SamplesArray
    {
        
    public static void Main()
        {
            C c 
    = new C();
            S.C(); 
        }
    }
    public static class S
    {
        
    static S()   //静态构造函数中不能有访问修饰符,默认为私有构造函数,这也是私有构造函数的用法。
        {
            Console.WriteLine(
    "静态类S!");
        }
        
    public static void C()
        {
            Console.WriteLine(
    "静态类S的静态方法!");
        }
        
    /*~S()   //静态类不能包含析构函数
        {
            Console.WriteLine("静态类S的析构函数!");
        }
    */
    }

    public class A
    {
        
    static A()
        {
            Console.WriteLine(
    "A类的静态构造函数!");
        }
        
    public A()
        {
            Console.WriteLine(
    "A类的实例构造函数!");
        }
        
    ~A()
        {
            Console.WriteLine(
    "A类的析构函数!");
        }
    }
    public class B:A
    {
        
    static B()
        {
            Console.WriteLine(
    "B:A类的静态构造函数!");
        }
        
    public B()
        {
            Console.WriteLine(
    "B:A类的实例构造函数!");
        }
        
    ~B()
        {
            Console.WriteLine(
    "B:A类的析构函数!");
        }
    }
    public class C:B
    {
        
    static C()
        {
            Console.WriteLine(
    "C:B类的静态构造函数!");
        }
        
    public C()
        {
            Console.WriteLine(
    "C:B类的实例构造函数!");
        }
        
    ~C()
        {
            Console.WriteLine(
    "C:B类的析构函数!");
        }
    }

    C:B类的静态构造函数!

    B:A类的静态构造函数!

    A类的静态构造函数!

    A类的实例构造函数!

    B:A类的实例构造函数!

    C:B类的实例构造函数!

    静态类S!//

    静态类S的静态方法!

    C:B类的析构函数!

    B:A类的析构函数!

    A类的析构函数!

  • 相关阅读:
    HDU1263(map)
    Let the Balloon Rise HDU
    PAT甲级1007
    PAT乙级1041
    PAT乙级1037
    PAT乙级1031
    PAT乙级1025
    Hanoi(栈实现)
    《全球资产配置》读后感 读书笔记
    《与内心的恐惧对话》读后感 读书笔记
  • 原文地址:https://www.cnblogs.com/answercard/p/1842934.html
Copyright © 2020-2023  润新知