为何有些类中有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中不是所有的对象都是可以先被定义的。
分类:
其它 / 面向对象
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示