根据MSDN 文档,该方法Random.Next()
返回一个非负随机数。为什么它会返回int
而不是返回uint
?
似乎返回一个在所用类型范围内均匀分布的值是最有意义的。从使用的角度来看 - 如果您正在使用int
它应该涵盖 的范围int
,并且如果您正在使用uint
它还应该返回该类型的均匀分布。这不是使用类型的意义吗?
uint 不符合 CLS。
以下是有关该主题的一些精彩阅读:
http://msdn.microsoft.com/en-us/library/vstudio/bhc3fa7f(v=vs.100).aspx
无法说明为什么 MSFT 会这样做。
但是如果你想要随机的 UInt32 就很容易了。
Random ran = new Random();
Debug.WriteLine(Int32.MaxValue.ToString());
Debug.WriteLine(((UInt32)ran.Next(Int32.MinValue, Int32.MaxValue)).ToString());