“非静态字段,方法或属性'Random.Next(int,int)'需要对象引用”是什么意思?

Eri*_*avo 1 c# random

我遇到的问题是Visual Studio在代码“ Random.Next(1,10);”下引发错误。说的是:

“非静态字段,方法或属性'Random.Next(int,int)需要对象引用”“

因此,我用类似的短语看了其他问题的答案。在这些关于Stack Overflow的示例中,大多数建议都表明有人需要简单地使方法或类静态化。我在此代码中尝试了此方法的所有组合,但未解决Visual Studio中的错误。

任何帮助表示赞赏,谢谢。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace Data_Collector_Course_Assignment
{
    public class Device
    {
        // Returns a randoom integer between 1 and 10 as a measurement of an 
           imaginary object

        public int GetMeasurement()
        {
            int randomInt = Random.Next(1,10);
            return randomInt;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*lis 5

这意味着Next是一个实例方法(不是static)。您需要一个实例Random才能使用它:

public int GetMeasurement()
{
    Random rand = new Random();
    int randomInt = rand.Next(1,10);
    return randomInt;
}
Run Code Online (Sandbox Code Playgroud)

或更短:

public int GetMeasurement()
{        
    int randomInt = new Random().Next(1,10);
    return randomInt;
}
Run Code Online (Sandbox Code Playgroud)