//\Dispose 的影响力\//FileStream fs = new FileStream(@"D:\My File.dat", FileMode.Open);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine("It is just a test");
sw.Flush();
sw.Close();
fs.Close();
fs.Dispose();//如果我忘写了这一行, 会怎样? 内存会泄漏吗? 会死机吗? 难道.net 内部机制 不会 主动Dispose ?
用请大侠们说说,谢谢。

解决方案 »

  1.   

    还用,当我 把程序 关了;
    那个 
        fs 占用的FileStream 流 
    会不会 随之释放?
      

  2.   

    会不会内存泄漏取决于这个对象是否使用了非托管的内存。
    一般来说,系统内置的类都有防呆的设计,比如你说的FileStream,在解析函数中会调用Dispose的。
      

  3.   


    FileStream这个类来Close()方法和Dispose ()方法没有区别它们都继承于Stream类调用close就行public virtual void Close()
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }public void Dispose()
    {
        Close();
    }
      

  4.   

    一般不用Dispose,直接Close就行了。也不会先Close,再Dispose,这其实是多余的写法。