为何有些类中有Dispose方法?

在使用Stream对象,transactionScop,socket对象时,我们往往会发现在它的内部有一个Dispose()方法,它是干什么用的呢?这要从微软的代码托管开始说起,所谓托管,就是不需要程序员自己去干涉内部分配与销毁,从对象的建立到销毁的过程完全由.net来帮我们去实现。

.net为提供的类库有两种,即“托管类库”和“非托管类库”,像自定义的类,值类型等,它一般来说,执行的结果可以预知,这时.net帮助我们去管理对象;而如果你要实现,网络上的传递,文件的传递,向服务器发包这些操作,都是系统未知的,即不知道什么时候能执行结束,这时,它们的对象释放,则需要自己去实现,例如:

1 using System;
2 public void Dispose ()
3 {
4     this.Dispose (true);
5     GC.SuppressFinalize (this);
6 }

这是mvc构造中controller类的实现,它也是非托管的类库,与此同时,还是stream。

事实上,今天通过一个小例子,让我们知道了,.net中不是所有的对象都是可以先被定义的。

原文地址:https://www.cnblogs.com/lori/p/2562931.html