回到我的C/C++时代,将“无限循环”编码为
while (true)
感觉更自然,对我来说似乎更明显,而不是
for (;;)
20世纪80年代末与PC-lint的一次接触以及随后的最佳实践讨论打破了我的这个习惯。此后,我使用for
控制语句对循环进行了编码。今天,很长一段时间以来的第一次,也许是我作为一名C#开发人员第一次需要无限循环,我面临着同样的情况。其中一个是正确的,另一个是错误的?
发布于 2009-09-09 18:08:15
while(true)
{
}
是我一直使用的,也是我见过其他人用于必须手动中断的循环的。
发布于 2009-09-09 18:14:02
C#编译器将把这两个
for(;;)
{
// ...
}
和
while (true)
{
// ...
}
转到
{
:label
// ...
goto label;
}
两者的CIL是相同的。大多数人发现while(true)
更容易阅读和理解。for(;;)
是相当神秘的。
来源:
我对.NET Reflector做了更多的修改,并且在Visual Studio中使用了“优化代码”来编译这两个循环。
两个循环都编译为(使用.NET反射器):
Label_0000:
goto Label_0000;
发布于 2009-09-09 18:07:51
我认为这可能更容易阅读,并且绝对是在C#中使用的标准:
while(true)
{
//Do My Loop Stuff
}
https://stackoverflow.com/questions/1401159
复制相似问题