riteLine("Press enter to Destroy it"); Console.ReadLine(); c=null; //GC.Collect(); Console.Read(); } } 正如我们预料的,基类的构造器将会被执行并且程序会等待用户按‘enter’。当这个发生,我们把类C的对象置为null.但解构器没有被执行..!!??正像我们所说的,程序员无法控制解构器何时被执行因为这是由垃圾搜集器决定的。但程序退出时解构器被调用了。你能通过重定向程序的o/p到文本文件来检查这个。我将它输出在这里。注意到基类的解构器被调用了,因为在背后base.Finalize()被调用了。 Creating A Creating B Creating C Object Created Press enter to Destroy it Destroying C Destroying B Destroying A 所以,如果一旦你使用完对象你就想调用解构器,你该怎么做?有两个方法: 调用垃圾搜集器来清理。 实现页码:[1] [2] [3] [4] [5] [6] [7] 第4页、共7页 |