无法生成随机数

Can't generate random number

我正在尝试循环生成随机数。我在循环开始之前创建了一个 Random class 的实例,但它是不可访问的。我得到的错误是:

'System.Random.Sample()' is inaccessible due to its protection level

我的代码是:

Random random = new Random();
   while (ready == false)
   {
       double h = random.Sample();
   //Lots of things done here
   }

怎么了?

您需要使用NextDouble方法。

 double h = random.NextDouble();

您尝试调用的方法不是错误消息中所述的 public

示例方法的

The documentation 解释了此行为:

Important

The Sample method is protected, which means that it is accessible only within the Random class and its derived classes. To generate a random number between 0 and 1 from a Random instance, call the NextDouble method.

如果您想创建自己的自定义随机数生成器,Sample 方法的目的是覆盖它。如果您只想使用 Random class,NextDouble 是正确的调用方法。

根据文档,要使用 protected 示例方法,您需要 "derive a class from the Random class and override the Sample method"。

你需要的是NextDouble(),它returns一个大于等于0.0,小于1.0的随机浮点数。

请参阅以下文档:

http://msdn.microsoft.com/en-us/library/system.random%28v=vs.110%29.aspx

使用

double h = random.NextDouble();

相反。