Chr*_*son 5 c# literals variable-assignment unsigned-integer
我准备一个非常棘手的c#考试,这个问题突然出现了.我有以下代码:
uint zzz = -12u;
Run Code Online (Sandbox Code Playgroud)
-12u被识别为System.Uint32文字,但它只能存储在类型的变量中long.这是为什么 ?
Ric*_*ton 12
它正在做的是取unsigned int 12并尝试将其转换为负值(-),这需要转换为可以处理负数的类型,因为unsigned int不能.
因为它是无符号整数,所以它有可能超出int范围的值,因此需要转换为long.