Ric*_*ard 0 .net c# random
可能重复: 类System.Random ..为什么不静态?
继"生成的随机数始终相等"之后,我想知道;
为什么Random类没有为Next可选的最小值和最大值公开静态方法?这可能听起来像一个愚蠢的问题,但从经验来看,我想生成一个随机数9次,而不必明确指定种子?我错过了一些明显的东西,这是有原因的吗?或者实际上有一种我正在解释的方法,我还没有发现?
Random
Next
Jon*_*eet 6
这可能听起来像一个愚蠢的问题,但从经验来看,我想生成一个随机数9次,而不必明确指定种子?
但是你不应该使用静态方法.您应该使用的东西,其实例方法不维护状态.如果您在Random每次呼叫时创建一个新实例,Next如果您连续多次调用它,您将最终得到重复的数字.
您应该将"随机数字来源"视为依赖,就像任何其他IMO一样 - 可注射以便可测试.当然,如果你没有使用依赖注入,那么这个论点可能不适用......但是你会遇到其他问题.
您可能需要Random每个线程的一个实例,因为Random它不是线程安全的.
有关更多详细信息和代码示例,请参阅我的随机数文章.
归档时间:
13 年,6 月 前
查看次数:
198 次
最近记录: