Почему оператор using работает в IEnumerator и что он делает?C#

Место общения программистов C#
Anonymous
Почему оператор using работает в IEnumerator и что он делает?

Сообщение Anonymous »

Когда я изучал foreach, я где-то прочитал следующее:

Код: Выделить всё

foreach (var element in enumerable)
{
// do something with element
}
по сути эквивалентен этому:

Код: Выделить всё

using (var enumerator = enumerable.GetEnumerator())
{
while (enumerator.MoveNext())
{
var element = enumerator.Current;

// do something with element
}
}
Почему этот код вообще компилируется, если ни IEnumerator, ни IEnumerator не реализуют IDisposable? В спецификации языка C# оператор using упоминается только в контексте IDisposable.

Что делает такой оператор using ?

Подробнее здесь: https://stackoverflow.com/questions/429 ... does-it-do

Вернуться в «C#»