感觉isDisposed这个变量完全没有必要,对象都释放了,这些判断完全多余?
class test : IDisposable
{
    //感觉isDisposed完全没有必要。
    bool isDisposed = false;
    public void show()
    {
        //既然调用了Dispose,对象就被释放了,对象不存在了,
        //这个方法也不能调用了?
        if (isDisposed)
            throw new ObjectDisposedException("xx");
    }
    public void Dispose()
    {
        //Dispose就调用一次,下面这个判断,感觉也没有必要。
        if (isDisposed)
            return;
        isDisposed = true;
    }
}test obj = new test();
obj.Dispose();

解决方案 »

  1.   

    test obj = new test();
    obj.Dispose();调用了方法而已。而不是释放资源
      

  2.   

    多少有用的,,比如你中途给Dispose一下 那你再使用Show() 就抛出异常了,,
    感觉就是就像 一次性筷子我用过了 就是 Dispose()
    你再用 也就是 Show()  你的大脑告诉你 别用  用过了  所以就抛出异常
      

  3.   

    当然 你这个Dispose() 并非真的是释放了资源   如果你问 这个到底有没有真的释放资源?
    那肯定的回答 是没有的如果你说这个有没有达到 我Dispose() 以后 无法再让他使用  那很肯定的说 有达到
      

  4.   

    http://space.itpub.net/12639172/viewspace-580649Dispose()与Close();
      

  5.   

    里面的例子:
    “this.Dispose();恰好说明直接销毁窗体所打开的所有资源”
    有点矛盾啊?
      

  6.   

    如果show里面创建了一个线程引用了,Dispose里面释放的资源,那调用了Dispose就有可能引起这个线程有问题。还是感觉这个判断语句没有用?
      

  7.   

    看看这个吧。
    http://blog.csdn.net/sykpboy/archive/2005/04/11/342971.aspx
      

  8.   

    Dispose() 方法就是给以个bool型变量赋值  算哪门子释放呢?