实现这个接口有什么好处呢IDisposable

解决方案 »

  1.   

    class TestUsing : IDisposable
    {
        public void Dispose()
        {
            //释放对象的方法
        }
        public void Method()
        {
            //你要用的方法
        }
    }using(TestUsing tu=new TestUsing())
    {
        tu.Method();
    }
    你会发现using直接调用了Dispose()释放了对象
      

  2.   

    可以显示的释放资源,不需要等gc,这个功能还包括可以使用使用using(){}关键字
      

  3.   

    可以人为制定释放你调用的非托管资源。比如一些com组件的句柄。对托管资源,好处是可以多释放一些对象的指针,这样垃圾回收队列就会小一些,在便利垃圾回收队列的时候。
    可以快一点。还可以控制某些对象不在按默认调用终结器,提高一些性能开销。就是实现这个接口,你也不可以显示释放内存的。除非调用GC函数。但是为了系统稳定性,我们一般不主动调用GC函数。
      

  4.   

    IDisposable接口为.net程序提供了资源(托管和非托管)释放的便利工具,加入对象调用程序不显示调用dispose方法,那么托管资源就不会被释放,从而会引发内存泄漏等问题。
    IDisposable接口的使用规则如下:1.如果对象实现了IDisposable接口及其dispose方法,那么托管资源和非托管资源都由dispose来释放,最后不会调用析构函数。2.如果dispose方法没有被调用,那么CLR就会调用析构函数,释放非托管资源。
      

  5.   

    .Net中的垃圾回收
    一般情况下是不需要自己取实现这些执行 释放资源的接口实现IDisposable的好处,就是可以用using语句来简化释放资源的代码。
      

  6.   


    我就知道如果你继承某类(父类)的时候,这个父类如果是数据操作类,就应当实现IDisposable接口
    对于继承了IDisposable的接口
    为什么((IDisposable)new A()).Dispose()可以编译过
    而new A().Dispose()不行?
      

  7.   

    .NET中用于释放对象资源的接口是IDisposable,此外还有Finalize和Close两个函数。
      

  8.   

    继承了IDisposable这个接口的类必须实现Dispose()方法。C#入门经典上说的