日期:2014-05-18  浏览次数:20856 次

Dispose 的影响力
//\Dispose 的影响力\//

C# code
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 ?



用请大侠们说说,谢谢。

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

C# code
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.C……

------解决方案--------------------
一般不用Dispose,直接Close就行了。

也不会先Close,再Dispose,这其实是多余的写法。