.net 我可以从方法返回StreamReader吗?
我可以从方法返回StreamReader吗?当然可以。不过,这不是一个好主意——您正在用一种方法创建StreamReader,然后用另一种方法关闭它。最好用一种方法创建和关闭阅读器。当然可以。不过,这不是一个好主意——您正在用一种方法创建StreamReader,然后用另一种方法关闭它。最好用一种方法创建和关闭读卡器。当然。使用正常的IDispose语义,下面是它的外观:.net 我可以从方法返回StreamReader吗?,.net,.net,我可以从方法返回StreamReader吗?当然可以。不过,这不是一个好主意——您正在用一种方法创建StreamReader,然后用另一种方法关闭它。最好用一种方法创建和关闭阅读器。当然可以。不过,这不是一个好主意——您正在用一种方法创建StreamReader,然后用另一种方法关闭它。最好用一种方法创建和关闭读卡器。当然。使用正常的IDispose语义,下面是它的外观: StreamReader MakeStreamReader () { return new StreamRea
StreamReader MakeStreamReader () {
return new StreamReader ("somefile.txt");
}
void Caller () {
using (StreamReader r = MakeStreamReader ())
Console.WriteLine (r.ReadToEnd ());
}
当然。使用正常的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:我同意你的观点,这已经被广泛采用了。我仍然认为,最好的做法是在接近创作的时候进行处理,这样你就不太可能忘记正确地处理它。根据上下文的不同,这不一定是个坏主意。框架中的许多方法的唯一目的是创建调用方负责释放的可支配资源。其中最重要的是File.OpenText、WebResponse.GetResponseStream、Control.CreateGraphics等@Josh:我同意你的观点,这已经被广泛采用了。我仍然认为最好的做法是将垃圾处理保持在接近于创建的位置,这样你就不会忘记正确处理垃圾了。