00问答网
所有问题
c# .net 哪些对象是需要手动释放的,哪些是由clr自动释放的?
或者直接说哪些是 非托管或没继承自dispose 的吧?
举报该问题
推荐答案 2014-07-21
GC负责程序运行时对象的回收工作,理论上来讲,所有的托管对象都可以由CLR自动释放,程序结束CLR会负责所有未销毁对象的回收工作。而使用了unsafe开关下创建的非托管对象,就要自己手动释放了。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/DeeT0TZBIDDnnTeZjT0.html
其他回答
第1个回答 2014-07-21
所有的对象都可以自动释放吧,C#比C++高级,就体现在这里
相似回答
C#
什么叫托管
对象?
答:
托管对象就是交给.NET自动释放资源的对象
。当然,也可以声明非托管的,但是要手动释放,麻烦。
C#
自定义类 dispose
释放
类
对象
答:
dispose
释放对象
的话,一般用于关闭一些带状态的连接、做一些构造对应的结束动作,并且“清除引用”如果要主动调用内存回收,请查GC类库。或者直接调用GC.Collect()。它会在你调用的时候执行内存回收。也就是“回收[没有任何引用]的变量所对应的内存”。
C#
.
net
如何
手动释放
内存资源
答:
1、由于大多数的非托管资源都要求可以
手动释放,
所以,我们应该专门
为释放
非托管资源公开一个方法。实现IDispose接口的Dispose方法是最好的模型,因为
C#
支持using语句快,可以在离开语句块时
自动
调用Dispose方法。 2、虽然可以手动释放非托管资源,我们仍然要在析构函数中释放非托管资源,这样才是安全的应用程序。否则如果因为...
clr
是什么意思?
答:
此外,
CLR还提供了垃圾回收机制,自动管理应用程序的内存
。当不再需要某个对象时,CLR会自动释放该对象占用的内存,防止内存泄漏。这使得开发人员无需手动管理内存,提高了开发效率和代码的可靠性。CLR还提供了异常处理机制,用于处理代码执行过程中可能出现的异常。当发生异常时,CLR会捕获异常并生成相应的...
大家正在搜
new的对象什么时候被释放
aspnet内置对象有哪些
要释放一个对象变量
释放session对象
释放出狱的顾送对象可以添加吗
adonet的5个对象以及功能
datareader对象
aspnet的内置对象
net组件中的对象
相关问题
c#中new一个对象以后,是否需要手动释放?
C#.net如何手动释放内存资源
C# 内存手动释放Dispose()
.NET的CLR是什么?
C#中关闭窗体时如何释放对象?
C#中用什么语句销毁对象(析构)
C# 编程问题 byte 数组,需要释放吗?
C#中对象的销毁有三种方式Finalize,Dispose,...