Jos*_*egl 0 c# oop random static class
我有一个公共静态类RandomGenerator,只有一个值apublic static random = new Random();
这就是它的样子
public static class RandomGenerator
{
public static Random random = new Random();
}
Run Code Online (Sandbox Code Playgroud)
我不得不这样做,因为当我的代码去访问一个随机的时候会生成太多重复的副本(我相信它与Random在内存中的位置有关)
上面的代码很棒!我的代码每次调用时都会生成一个真正的随机值.我的问题是为什么C#语言的内置静态函数不是随机的?是因为以这种方式访问某些内容会导致性能下降吗?我编写代码的方式是否存在明显的性能问题?
小智 6
MSDN编写以下有关Random构造函数的内容:
默认种子值源自系统时钟并具有有限的分辨率.因此,通过调用默认构造函数紧密连续创建的不同Random对象将具有相同的默认种子值,因此将生成相同的随机数集.使用单个Random对象生成所有随机数可以避免此问题.您还可以通过修改系统时钟返回的种子值,然后将此新种子值显式提供给Random(Int32)构造函数来解决此问题.
http://msdn.microsoft.com/en-us/library/h343ddh9.aspx