相关疑难解决方法(0)

foreach会自动调用Dispose吗?

在C#中,foreach是否会在任何实现IDisposable的对象上自动调用Dispose?

http://msdn.microsoft.com/en-us/library/aa664754(v=vs.71).aspx似乎表明它确实:

*否则,集合表达式是一个实现System.IEnumerable的类型,而foreach语句的扩展是:复制

IEnumerator enumerator = 
        ((System.Collections.IEnumerable)(collection)).GetEnumerator();
try {
   while (enumerator.MoveNext()) {
      ElementType element = (ElementType)enumerator.Current;
      statement;
   }
}
finally {
   IDisposable disposable = enumerator as System.IDisposable;
   if (disposable != null) disposable.Dispose();
}
Run Code Online (Sandbox Code Playgroud)

c# foreach idisposable

58
推荐指数
2
解决办法
1万
查看次数

标签 统计

c# ×1

foreach ×1

idisposable ×1