朋友让我帮忙找答案,今天早上必须要交,我也没弄过几天程序就丢了好多年了,没办法不做伸手党了,鄙视我没事,但是好心人看见一定要帮帮我啊!!!写出下列程序的执行结果。using System;
 class BaseClass
 {
    public BaseClass(){        //构造函数
       Console.WriteLine("Call BaseClass Constructor!");
    }
    ~BaseClass(){             //析构函数
       Console.WriteLine("Call BaseClass Destructor!");
    }
 }
 classDerivedClass : BaseClass     //派生类
 {
     public DerivedClass(){        //构造函数
       Console.WriteLine("Call DerivedClass Constructor!");
    }
    ~DerivedClass(){               //析构函数
       Console.WriteLine("Call DerivedClass Destructor!");
    }
 }
 class Class    //程序入口
 {
     static void Main(){
        DerivedClass d = new DerivedClass();
     }
 }
 

解决方案 »

  1.   

    Call BaseClass Constructor!
    Call DerivedClass Constructor!
    Call DerivedClass Destructor!
    Call BaseClass Destructor!
    如果和C++一样的话,就是先父类的构造,再自己的构造,析构则是相反。
    另,C#中还真用过析构函数。
      

  2.   

    我们是不能控制解构器的、它是由垃圾收集器去执行的、
    结果会是
    Call BaseClass Constructor!
    Call DerivedClass Constructor!
    要想控制就得重定向吧、
    貌似是这样的、
    上学的时候看过这样的例子
      

  3.   

    调试了下、是在main函数执行完以后才去析构的、所以书上说的没错
    析构函数(destructor) 与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数。
    这个题目、有歧义