编码此功能没有内存泄漏!- 请指教

Jos*_*osh 1 dispose function filestream c#-3.0

在下面的代码示例中,文件流和流读取器是否会被丢弃或者它们是否会产生内存泄漏?是否可以编写此功能而不会导致内存泄漏?

  string ReadFile(string strPath)
     {
         using (FileStream fstream = new FileStream(strPath, FileMode.Open))
         {
             using (StreamReader sreader = new StreamReader(fstream))
             {
                return sreader.ReadToEnd().ToString(); //NOTE ITS RETURNED HERE...SO CAN IT GET DISPOSED AFTER THIS LINE?
             }
         }
     }
Run Code Online (Sandbox Code Playgroud)

谢谢

Eug*_*rda 5

using 指令意味着:

try
{
var iDisposable = new IDisposable();
//using iDisposable...
}
finally
{
//here IDisposable's dispose
}
Run Code Online (Sandbox Code Playgroud)

所以是的fstream,sreader并将被处置.

  • 调用顺序为:函数调用,FileStream.ctor,StreamReader.ctor,StreamReader.ReadToEnd,String.ToString,StreamReader.Dispose,FileStream.Dispose,函数结束 (2认同)