无法生成随机数

时间:2015-01-01 16:39:55

标签: c# random

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

  

' System.Random.Sample()'由于其保护级别而无法访问

我的代码是:

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

出了什么问题?

3 个答案:

答案 0 :(得分:8)

Sample方法的

The documentation解释了这种行为:

  

重要

     

Sample方法是受保护的,这意味着它只能在Random类及其派生类中访问。要从Random实例生成介于0和1之间的随机数,请调用NextDouble方法。

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

答案 1 :(得分:5)

您需要使用NextDouble方法。

 double h = random.NextDouble();

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

答案 2 :(得分:1)

要使用受保护的 Sample方法,您需要“从Random类派生一个类并覆盖Sample方法”,根据文档。

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

请参阅以下文档:

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

使用

double h = random.NextDouble();

相反。