继“生成的随机数总是相等”之后,我想知道;
为什么该类不公开具有可选最小值和最大值Random
的静态方法?Next
这听起来可能是一个愚蠢的问题,但根据经验,10 次中有 9 次我想生成一个随机数,而不必明确指定种子?我是否遗漏了一些明显的东西,这是有原因的吗?或者实际上我正在解释一种我尚未发现的方法?
继“生成的随机数总是相等”之后,我想知道;
为什么该类不公开具有可选最小值和最大值Random
的静态方法?Next
这听起来可能是一个愚蠢的问题,但根据经验,10 次中有 9 次我想生成一个随机数,而不必明确指定种子?我是否遗漏了一些明显的东西,这是有原因的吗?或者实际上我正在解释一种我尚未发现的方法?
这听起来可能是一个愚蠢的问题,但根据经验,10 次中有 9 次我想生成一个随机数,而不必明确指定种子?
不过,您不应该为此使用静态方法。您应该在确实保持状态的事物上使用实例方法。如果您Random
每次调用时都创建一个新实例,Next
如果您快速连续多次调用它,最终会得到重复的数字。
您应该将“随机数的来源”视为与任何其他 IMO 一样的依赖项 - 可注入以便可测试。当然,如果你没有使用依赖注入,那么这个论点可能不适用……但是你还有其他问题。
您可能需要每个线程一个实例Random
,因为Random
它不是线程安全的。
有关更多详细信息和代码示例,请参阅我关于随机数的文章。