2010-03-03 180 views

回答

5

是的,當然。不過,這不是一個好主意 - 你用一種方法創建StreamReader,然後在另一個方法中關閉它。用一種方法創建和關閉閱讀器是更好的做法。

+3

不一定是壞主意根據上下文。框架中的許多方法僅用於創建調用者負責釋放的可支配資源。其中最重要的是File.OpenText,WebResponse.GetResponseStream,Control.CreateGraphics等。 – Josh 2010-03-03 05:13:19

+0

@Josh:我明白你的觀點 - 它已被廣泛使用。我仍然認爲最好的做法是保持處置接近創造 - 更少的機會,你會忘記妥善處理它。 – 2010-03-03 05:15:13

1

當然。在使用普通IDispose語義,這裏是它會怎樣看:

StreamReader MakeStreamReader() { 
    return new StreamReader ("somefile.txt"); 
    } 

    void Caller() { 
    using (StreamReader r = MakeStreamReader()) 
     Console.WriteLine (r.ReadToEnd()); 
    } 
相關問題