0
我可以從方法中返回StreamReader嗎?我可以從方法返回StreamReader嗎?
我可以從方法中返回StreamReader嗎?我可以從方法返回StreamReader嗎?
是的,當然。不過,這不是一個好主意 - 你用一種方法創建StreamReader,然後在另一個方法中關閉它。用一種方法創建和關閉閱讀器是更好的做法。
當然。在使用普通IDispose語義,這裏是它會怎樣看:
StreamReader MakeStreamReader() {
return new StreamReader ("somefile.txt");
}
void Caller() {
using (StreamReader r = MakeStreamReader())
Console.WriteLine (r.ReadToEnd());
}
不一定是壞主意根據上下文。框架中的許多方法僅用於創建調用者負責釋放的可支配資源。其中最重要的是File.OpenText,WebResponse.GetResponseStream,Control.CreateGraphics等。 – Josh 2010-03-03 05:13:19
@Josh:我明白你的觀點 - 它已被廣泛使用。我仍然認爲最好的做法是保持處置接近創造 - 更少的機會,你會忘記妥善處理它。 – 2010-03-03 05:15:13