2012-04-28 332 views

回答

8

它没有记录,我认为这是故意的。我没有看到有什么好的理由说明为什么这样的应该被记录下来,框架实施者应该能够选择如何做到这一点。

但是如果你想知道它目前是如何工作的,只需使用ildasm或Reflector。反光会给你这个(.NET 4.5测试版):

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

如果你看一下the source code of mono,你会看到,自2003年以来,它完全一样的东西。

+0

我还是不明白*为什么*他们使用如此糟糕的播种,并拒绝改善它。 – CodesInChaos 2012-04-28 16:00:49

+0

为什么这对你很重要? – svick 2012-04-28 16:10:44

+1

因为这个(还有一些问题)使得很难以强大的方式使用'System.Random'。所有关于SO的随机相关问题的重要部分都是由于这个设计缺陷造成的,所以它显然是一个很容易解决的常见错误来源。就我个人而言,我很不喜欢'System.Random',所以我写了自己的PRNG类来避免这些问题。 – CodesInChaos 2012-04-28 16:46:10