我正在阅读 Jon Skeet 最近的这篇文章:我如何列举你?让我数一数路…… 它是关于调查代码编译成什么。在这种情况下,他检查
foreach (char ch in text)
{
// Body here
}
他使用的最后一个示例(对于 text 类型为 的情况string
),他表明编译器将 foreach 循环转换为 while 循环,如下所示:
int index = 0;
while (index < text.Length)
{
char ch = text[index];
index++;
// Body here
}
在这种情况下,从 foreach 循环转换为 while 循环可能并不费力(甚至需要进行这种转换),但从更一般的意义上说,我是否应该将我的代码编写得更类似于编译代码?