Jon Skeetによるこの最近の投稿を読んでいました:どうすればあなたを列挙できますか?方法を数えさせてください...。それは、コードが何にコンパイルされるかを調査することです。この場合、彼は調べます
foreach (char ch in text)
{
// Body here
}
彼が使用する最後の例(テキストがタイプの場合string
)は、コンパイラーがforeachループを次のようなwhileループに変換することを示しています。
int index = 0;
while (index < text.Length)
{
char ch = text[index];
index++;
// Body here
}
この場合、foreachループからwhileループに変換する(またはその変換を行うために必要でさえある)のはそれほど手間がかからないかもしれませんが、より一般的な意味で、コードをより類似するように書く必要がありますコンパイルされたコード?