c# – 从0x0000循环到0xFFFF

前端之家收集整理的这篇文章主要介绍了c# – 从0x0000循环到0xFFFF前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想要一个使用UInt16(ushort)循环遍历其所有值的循环.但是,这不会这样做:
for( ushort i = 0; i < UInt16.MaxValue; i++ )
{
    // do something
}

问题是,当i == 0xFFFF而不是“做某事”时,循环将退出.
如果我将’for’语句更改为“for(ushort i = 0; i< = UInt16.MaxValue; i)”,那么它将变为无限循环,因为我永远不会达到0x10000因为ushorts只转到0xFFFF. 我可以使’i’成为一个int并将其转换为或者将其分配给循环中的ushort变量. 有什么建议?

解决方法

使用do … while循环
ushort i = 0;
do
{
    // do something
} while(i++ < UInt16.MaxValue);

关于顶部与底部here的测试循环有一个有趣的讨论.

猜你在找的C#相关文章