RHa*_*uda 22 .net vb.net types
UInteger数据类型包含0到4,294,967,295之间的任何值(参考MSDN).
如果我在VB.NET中尝试此代码,我会收到编译器错误:
Dim Test As UInteger = &HFFFFFFFF
Run Code Online (Sandbox Code Playgroud)
错误:"常量表达式在'UInteger'类型中无法表示.
如果此类型可以保存此值,为什么我不能将0xFFFFFFFF(4,294,967,295)设置为UInteger?
Dan*_*Tao 28
我相信这是因为&HFFFFFFFFVB.NET编译器将文字解释为a Integer,而Integera的值是负数(-1),显然不能转换为a UInteger.
这个问题很容易通过编写来修复&HFFFFFFFFUI,附加UI后缀来将文字视为一个UInteger.