C#int32 literal只能以long数据类型存储

我准备一个非常棘手的c#考试,这个问题突然出现了.
我有以下代码:

 uint zzz = -12u;

-12u被识别为System.Uint32文字,但它只能存储在long类型的变量中.这是为什么 ?

最佳答案
它正在做的是取unsigned int 12并尝试将其转换为负值( – ),这需要转换为可以处理负数的类型,因为unsigned int不能.

因为它是无符号整数,所以它有可能超出int范围的值,因此需要转换为long.

转载注明原文:C#int32 literal只能以long数据类型存储 - 代码日志