如果按楼上两位说的,代码要改成这样吗?
Class1 myObject=new Class1(); 
myObject.method1(); 
myObject.Dispose();是这样释放myOject对象吗?Dispose()方法不应该这样用吧。

解决方案 »

  1.   

    不光是有Dispose(),还有Finalize()、GC.Collect(),
    不过.net有垃圾收集机制,如果不是很有必要,不要使用这些,实际上就算调用了上面三个方法中的前两个,该对象也不一定就马上释放掉了,只不过是把它的垃圾收集的优先级提高了,在下一次收集的时候就会释放掉,而GC.Collect()是立即释放资源(收集垃圾),但不释放指定的资源。
      

  2.   

    谢谢楼上! 那么您认为下面代码的第三行应该写成什么好呢?谢谢!
    1. Class1 myObject=new Class1();  
    2. myObject.method1();  
    3.
      

  3.   

    谢谢楼上! 那么您认为下面代码的第三行应该写成什么好呢?谢谢! 
    1. Class1 myObject=new Class1();   
    2. myObject.method1();   
    3.
      

  4.   

    如果你的对象很大的话,可以先Dispose(),然后GC.Collect()
    1. Class1 myObject=new Class1();   
    2. myObject.method1();   
    3. myObject.Dispose();//前提是你的Class1继承了IDispose接口
    4. myObject = null;
    5. GC.Collect();建议你一般不要这样做,因为频繁的收集垃圾对系统的性能有很大的影响的