在C#中,foreach是否自動調用Dispose實現IDisposable的任何對象?是否會自動調用Dispose?
http://msdn.microsoft.com/en-us/library/aa664754(v=vs.71).aspx似乎表明,它的作用:
*否則,collection表達式是實現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();
}
你的意思是在_enumerable_上還是在_enumerator_上? – zneak 2011-02-13 04:22:18
@zneak:這是統計員。枚舉只是提供了一種檢索枚舉器的方法。 – 2011-02-13 04:23:44