方法范围中的资源释放与在.NET中使用块范围

时间:2014-02-10 10:40:52

标签: c# .net scope using-statement

哪种方法更有效(时间,内存,资源释放,异常情况)?

public static string getFileData(string filePath)
{
    using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
    {
        using (StreamReader r = new StreamReader(fs))
        {
            return r.ReadToEnd();
        }
    }
}

OR

public static string getFileData(string filePath)
    {
        return (new StreamReader(new FileStream(filePath, FileMode.Open, FileAccess.Read)).ReadToEnd());
    }

2 个答案:

答案 0 :(得分:1)

首先毫无疑问 - 你至少处理你正在使用的资源。在你的第二种情况下,也许如果它被存储到一个静态变量中,所以只读一次它可能没问题,但仍然没有勤奋处理

答案 1 :(得分:0)

CLR将为两个代码生成一个代码,因此两个代码相同