我试图在循环中生成随机数。我在循环开始之前创建了一个Random类的实例,但它是不可访问的。我得到的错误是:
' System.Random.Sample()'由于其保护级别而无法访问
我的代码是:
Random random = new Random();
while (ready == false)
{
double h = random.Sample();
//Lots of things done here
}
出了什么问题?
答案 0 :(得分:8)
The documentation解释了这种行为:
重要强>
Sample方法是受保护的,这意味着它只能在Random类及其派生类中访问。要从Random实例生成介于0和1之间的随机数,请调用NextDouble方法。
如果要创建自己的自定义随机数生成器,Sample
方法的目的是覆盖它。如果您只想使用 Random
类,NextDouble
是正确的调用方法。
答案 1 :(得分:5)
答案 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();
相反。