最近学习看到有的代码中,一个程序,new了一个对象,没有看到有free的代码,也搞不懂对象在哪儿free
如果没有free部分,程序运行后,会不会电脑的内存出现问题?

解决方案 »

  1.   

    .net 垃圾回收器,在你对象没有引用时,释放。
      

  2.   

    一般如果你想自动释放的话,应该用using括起来,当然不括应该也可以。我也是刚学。平时都是用using括起来的。如果不用了。他自己会自动释放。
      

  3.   

    会自动帮你释放的 C# JAVA之类的语言已经不需要手动释放内存了
      

  4.   

    托管资源和非托管资源  托管的有GC 会帮你释放   非托管的 必然数据的操作那些 或者文件操作那些 要收到关闭 可以用 using 
      

  5.   

    dispose是自动释放的 。建议你其实可以这样操作 ,单步调试 ,这样你就可以看到程序的运行方式了 。
      

  6.   

    GC默认会在一段时间间隔清空内存中,不使用的变量
    当然你也可以像C++那样 用~来写析构函数,不过除非是非托管代码,一般不会这么用
      

  7.   

    建议楼上说Dispose的朋友们还是看书重新复习一下IDispose接口,正好相反,实现这个接口的意义是,必须手工调用Dispose方法,系统不会替你执行Dispose方法。
    只是,系统实现的IDispose接口的类,都在析构函数中检查, 没调用过Dispose,则调用一次。但如果自己写的类,实现此接口,则要注意,Dispose不会自动调用。正好想法,表示了Dispose需要在你不用的时候手工调用,目的是释放非托管资源。