我想要一个使用 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 变量。
有什么建议么?