ホームページ >バックエンド開発 >C++ >Foreach ループをサポートする C# クラスの種類は何ですか?

Foreach ループをサポートする C# クラスの種類は何ですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-10 10:18:40896ブラウズ

What Types of C# Classes Support Foreach Loops?

C# の foreach ループ

質問:

foreach ループの使用を許可するクラスの種類は何ですか?

答え:

技術的には、bool MoveNext() メソッドと Current プロパティを持つ型を返す GetEnumerator() という名前のパブリック メソッドを持つ任意のクラスを使用できます。ただし、最も一般的な説明には、IEnumerable または IEnumerable を実装し、IEnumerator または IEnumerator を返すクラスが関係しています。

拡張により、ICollection または ICollection を実装するクラス (例: Collection、List、Array (T[])) は、foreach ループをサポートできます。

仕組み:

foreach ループは次のように動作します:

  • 指定されたオブジェクト (obj) の GetEnumerator() メソッドから一時オブジェクト (tmp) を初期化します。
  • tmp.MoveNext() が true を返す限り、Current の現在値を含むループ本体 ({...} で囲まれた) が繰り返し実行されます。

バリエーション:

  • tmp が IDisposable をサポートしている場合は、ループの完了時にそれを使用して tmp を破棄します。
  • C# 5.0 では、i のような変数をループ内で宣言できますが、以前のバージョンではループの外で宣言する必要がありました。この区別は、ループ内の匿名メソッドまたはラムダ式で i を使用する場合に重要になります。

以上がForeach ループをサポートする C# クラスの種類は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。