根据MSDN文档,方法
Random.Next()
返回非负随机数。为什么它返回int
而不是uint
?似乎应该返回一个均匀分布在所使用类型范围内的值。从使用角度来看,如果您使用int
,它应该覆盖int
的范围,如果您使用uint
,它也应返回该类型上的均匀分布。这不正是使用类型的目的吗?
Random.NextDouble()
乘以uint.MaxValue
。 - Jim Mischel+ (uint)int.MaxValue
不是必需的,任何负值在转换为uint
时都会被转换为它的二进制补码值。 - Scott Chamberlain