foreach
ループとその実装について理解するforeach
ループを使用するクラスはどれですか?
C# の foreach
ループは、IEnumerable
または IEnumerable<T>
を実装するクラスで頻繁に使用されます。 これには、GetEnumerator()
または IEnumerator
を返す IEnumerator<T>
メソッドを提供するクラスが含まれます。 基本的に、これは、配列、リスト、その他のコレクションなど、ICollection
または ICollection<T>
を実装するすべてのクラスをカバーします。
ループの仕組み:foreach
ループ (foreach
など) は機能的には次のようになります。foreach (int i in obj) { ... }
<code class="language-csharp">var tmp = obj.GetEnumerator(); int i; // C# 4.0 and earlier while (tmp.MoveNext()) { int i; // C# 5.0 and later i = tmp.Current; { ... } // Loop body }</code>
) が tmp
を実装する場合、それは破棄されます (IDisposable
ステートメントと同様)。 using
の宣言はC#のバージョンによって異なります。 C# 5.0 以降では、ループ内で宣言されます。以前のバージョンでは、それを外部で宣言します。この区別は、匿名メソッド内で int i
を使用する場合、またはループ内のラムダ式を使用する場合に重要です。i
以上がForeach ループは C# でどのように機能し、どのクラスがそれを実装するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。