为什么
var random = new Random();
random.Next(0 /* or any other positive value */, int.MaxValue);
大约是:的1.5倍:
random.Next(-1, int.MaxValue);
.NET Framework(4.7.2)如何实现此功能?他们不应该具有相同的性能吗?
(通过循环生成10M值来衡量性能)
编辑:-1和int.MaxValue之间的范围是否可能太大,因此必须在内部生成两个值?因为我看不到在-1和int.MaxValue-1之间生成的行为
答案 0 :(得分:0)
查阅maccettura推荐的源代码后,如果范围为>Int32.MaxValue
,则使用性能较低的变体。