在C#迭代器块中,是否有一种方法可以提供一段代码块,在foreach结束时运行(自然结束或被打破),比如清理资源?
我想到的最好方法是使用using结构,这很好,但需要一个IDisposable类来进行清理。例如:
我想到的最好方法是使用using结构,这很好,但需要一个IDisposable类来进行清理。例如:
public static IEnumerable<string> ReadLines(this Stream stream)
{
using (StreamReader rdr = new StreamReader(stream))
{
string txt = rdr.ReadLine();
while (txt != null)
{
yield return txt;
txt = rdr.ReadLine();
}
rdr.Close();
}
}