正在阅读:总体了解C#(23.构造器和析构器)总体了解C#(23.构造器和析构器)

2004-02-14 09:34 出处:PConline 作者:荣耀翻译/ASPCool.com 责任编辑:zwg
总体了解C#(23.构造器和析构器) A Comparative Overview of C#中文版 作者:Ben Albahari 公司:Genamics 日期:2000年7月31日初版,2000年8月10日修订。   感谢以下人士支持和反馈(按字母先后顺序):Don Box、 C.R. Manning、 Joe Nalewabau、 John Osborn、 Thomas Rhode & Daryl Richter。 译者:荣耀 23.构造器和析构器 你可以指定可选的构造器参数: class Test { public Test () : this (0, null) {} public Test (int x, object o) {} } 你也可以指定静态构造器: class Test { static int[] ascendingArray = new int [100]; static Test () { for (int i = 0; i < ascendingArray.Length; i++) ascendingArray [i] = i; } }   析构器的命名采用C++的命名约定,使用~符号。析构器只能应用于引用类型,值类型不可以,并且不可被重载。析构器不可被显式调用,这是因为对象的生命期被垃圾收集器所管制。在对象所占用的内存被回收前,对象继承层次里的每一个析构器都会被调用。   尽管和C++的命名相似,C#中的析构器更象Java中的finalize方法。这是因为它们都是被垃圾收集器调用而不是显式地被程序员调用。而且,就象Java的finalize,它们不能保证在各种情况下都肯定被调用(这常常使第一次发现这一点的每一个人都感到震惊)。如果你已习惯于采用确定性的析构编程模式(你知道什么时候对象的析构器被调用),当你转移到Java或C#时,你必须适应这个不同的编程模型。微软推荐的和实现的、贯穿于整个.NET框架的是dipose模式。你要为那些需要管理的外部资源(如图形句柄或数据库连接)的类定义一个dispose()方法。对于分布式编程,.NET框架提供一个约定的基本模型,以改进DCOM的引用计数问题。

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品