为什么Random.Next()返回int而不是uint?

时间:2013-06-25 18:30:58

标签: c# .net random

根据MSDN docs方法Random.Next() 返回非负随机数。为什么它返回int而不是uint?< / p>

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

2 个答案:

答案 0 :(得分:16)

uint不符合CLS。

以下是关于该主题的一些很好的阅读:

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

答案 1 :(得分:0)

不能说为什么MSFT这样做。
但是如果你想要随机的UInt32,这很容易。

Random ran = new Random();
Debug.WriteLine(Int32.MaxValue.ToString());
Debug.WriteLine(((UInt32)ran.Next(Int32.MinValue, Int32.MaxValue)).ToString());