为什么在未选中(Environment.TickCount*31)的情况下初始化新的Random()

本文关键字:情况下 初始化 Random TickCount 为什么 Environment | 更新日期: 2023-09-27 17:58:08

我发现了Random实例的初始化:

var random = new Random(unchecked(Environment.TickCount * 31));

为什么不简单地使用new Random()

为什么在未选中(Environment.TickCount*31)的情况下初始化新的Random()

关键字unchecked防止在计算Environment.TickCount * 31整数溢出时引发异常。

由此产生的计算本质上是一个随机整数(它丢弃了一堆高阶比特),用于为随机数生成器种子。

请注意,随机参考源有以下代码作为其无参数构造函数:

public Random() 
    : this(Environment.TickCount) {
  }
相关文章: