4

根据MSDN 文档,该方法Random.Next() 返回一个非负随机数。为什么它会返回int而不是返回uint

似乎返回一个在所用类型范围内均匀分布的值是最有意义的。从使用的角度来看 - 如果您正在使用int它应该涵盖 的范围int,并且如果您正在使用uint它还应该返回该类型的均匀分布。这不是使用类型的意义吗?

4

2 回答 2

16

uint 不符合 CLS。

以下是有关该主题的一些精彩阅读:

http://msdn.microsoft.com/en-us/library/vstudio/bhc3fa7f(v=vs.100).aspx

于 2013-06-25T18:34:26.703 回答
0

无法说明为什么 MSFT 会这样做。
但是如果你想要随机的 UInt32 就很容易了。

Random ran = new Random();
Debug.WriteLine(Int32.MaxValue.ToString());
Debug.WriteLine(((UInt32)ran.Next(Int32.MinValue, Int32.MaxValue)).ToString());
于 2013-06-25T18:42:34.130 回答