为什么用unchecked(Environment.TickCount * 31)初始化一个新的Random()?

时间:2016-07-21 14:40:13

标签: c# random

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

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

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

1 个答案:

答案 0 :(得分:7)

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

结果计算本质上是一个随机整数(抛出一堆高位),用于为随机数生成器播种。

请注意Reference Source for Random将此代码作为其无参数构造函数:

public Random() 
    : this(Environment.TickCount) {
  }