早在我学习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
    }
}

如果IEnumeratorIEnumerator<T>都没有实现IDisposable,为什么还要编译此代码? C#语言规范似乎只在using上下文中提到了IDisposable语句。

这样的using语句有什么作用?

最佳答案

请检查以下有关link ,以获取每个声明。如果可能,它将try/finally块与Dispose调用一起使用。这是使用语句在后面的代码。

关于c# - 为什么using语句在IEnumerator上起作用,它做什么用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42953719/

10-13 03:58
查看更多