继"Generated random numbers are always equal"之后,我在想;
为什么Random
类没有为Next
公开一个带有可选最小值和最大值的静态方法?这可能听起来像一个愚蠢的问题,但从经验来看,我想要生成一个随机数,而不必明确指定一个种子?我错过了一些明显的东西,这是有原因的吗?或者实际上是一种我正在解释我还没有发现的方法吗?
答案 0 :(得分:6)
这可能听起来像一个愚蠢的问题,但根据经验,我想生成一个随机数9次,而不必明确指定种子?
尽管如此,你不应该使用静态方法。您应该在 维护状态的事物上使用实例方法。如果您每次拨打Random
时都创建了Next
的新实例,那么如果您连续多次调用它,您最终会重复数字。
你应该把"随机数的来源"作为一种依赖,像任何其他IMO - 注射,以便可测试。当然,如果你不使用依赖注入,那么这个论点可能不适用......但是你还有其他问题。
您可能希望每个帖子有一个Random
个实例,因为Random
不是线程安全的。
有关详细信息和代码示例,请参阅我的article on random numbers。