2008年4月5日
摘要: 今天看到这篇文章一个在C#以及类似的面向对象系統(Java中估计也是如此)中常见的错误,感触颇多,说句实在话,国内目前的OO语言教学中忽略了一个关键的一环“OO的对象模型”,这里有本好书:侯捷的《深度探索C++对象模型》。看过的与没有看过的,对理解OO的对象模型有层次的不同。看过的人往往会思考:“编译器到底做了什么”?没看过的会想当然:“应该是这样的,就是这样的......”。比如把一个子类对... 阅读全文
posted @ 2008-04-05 01:08 shawnliu 阅读(359) 评论(1) 推荐(0) 编辑
摘要: Finalize 和Dispose(bool disposing)和 Dispose() 的相同点: 这三者都是为了释放非托管资源服务的. Finalize 和 Dispose() 和Dispose(bool disposing)的不同点: Finalize是CRL提供的一个机制, 它保证如果一个类实现了Finalize方法,那么当该类对象被垃圾回收时,垃圾回收器会调用Fina... 阅读全文
posted @ 2008-04-05 01:06 shawnliu 阅读(586) 评论(0) 推荐(0) 编辑
摘要: 在这里,对象可以通过两种方式被清除。第一种方式是通过IDisposable接口的Dispose方法。此方法在对象显式地结束时被客户代码调用,它调用InternalDispose(true)。在这种情况下所有的对象都被清除了。如果析构函数被调用,那么InternalDispose(false)被调用,此时只有外部资源会被释放。如果我们已经执行了终止操作,那么我们自己的对象有可能已经被释放了,此后... 阅读全文
posted @ 2008-04-05 01:05 shawnliu 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 在.NET的所有技术中,最具争议的恐怕是垃圾收集(Garbage Collection,GC)了。作为.NET框架中一个重要的部分,托管堆和垃圾收集机制对我们中的大部分人来说是陌生的概念。在这篇文章中将要讨论托管堆,和你将从中得到怎样的好处。 ... 阅读全文
posted @ 2008-04-05 01:03 shawnliu 阅读(349) 评论(0) 推荐(0) 编辑