C# CS0120“;非静态字段、方法或属性需要对象引用“PlayerProption”;如何修复?

C# CS0120“;非静态字段、方法或属性需要对象引用“PlayerProption”;如何修复?,c#,C#,这是我的代码,我已经评论了错误的位置: using System; using ScissorsPaperRock; namespace ScissorsPaperRock { public class ThePlayerOption { public UNIT thePlayerChosenOption; public static void Main() { Console.WriteLine(&quo

这是我的代码,我已经评论了错误的位置:

using System;
using ScissorsPaperRock;

namespace ScissorsPaperRock
{
    public class ThePlayerOption
    {
        public UNIT thePlayerChosenOption;
        public static void Main()
        {
            Console.WriteLine("Select an option. 1 = Scissors, 2 = Paper, 3 = Rock");
            int Option = Convert.ToInt32(Console.ReadLine());

            if (Option == 1)
            {
                thePlayerChosenOption = UNIT.SCISSORS; // CS0120
            }
            else if (Option == 2)
            {
                thePlayerChosenOption = UNIT.PAPER; // CS0120
            }
            else if (Option == 3)
            {
                thePlayerChosenOption = UNIT.ROCK; // CS0120
            }
            else
            {
                Console.WriteLine("Please try again!");
            }
        }
    }
}
我不明白这个错误想要我做什么,因为下面的代码不会产生错误:

using System;

namespace ScissorsPaperRock
{
    public class TheAIOption
    {
        public UNIT theAIChosenOption;
        void Start()
        {
            System.Random rnd = new System.Random(); // Makes the random class.
            int AISelect = rnd.Next(0, 2);
            {
                if (AISelect == 0)
                    theAIChosenOption = UNIT.SCISSORS;
                else if (AISelect == 1)
                    theAIChosenOption = UNIT.PAPER;
                else
                    theAIChosenOption = UNIT.ROCK;
                // This code SHOULD select one of the three enums in Options.cs and keep the selected option on hand.
            }
        }
    }
}
是什么导致了这个错误?更重要的是,我如何才能干净地修复它


干杯。

公共单位爱科斯诺普和<代码>公共单元的播放关闭选项都是类成员

void Start()
是一种类方法:它可以自由访问类成员(“对象实例方法”)

publicstaticvoidmain()
是一个静态类方法。要访问播放或关闭选项,您必须:

a) 提供对象引用(错误消息的要点)

。。。或者

b) 将成员声明为静态:
publicstaticunittheplayercosenoption

从Microsoft文档中:

非静态字段、方法或对象需要对象引用 属性“成员”

要使用非静态字段、方法或属性,必须 首先创建一个对象实例。有关静态的详细信息,请参见 方法,请参见静态类和静态类成员。更多 有关创建类实例的信息,请参见实例 构造器

这里有一篇好文章(很多文章中的一篇!):


公共单位爱科斯诺普和<代码>公共单元的播放关闭选项都是类成员

void Start()
是一种类方法:它可以自由访问类成员(“对象实例方法”)

publicstaticvoidmain()
是一个静态类方法。要访问播放或关闭选项,您必须:

a) 提供对象引用(错误消息的要点)

。。。或者

b) 将成员声明为静态:
publicstaticunittheplayercosenoption

从Microsoft文档中:

非静态字段、方法或对象需要对象引用 属性“成员”

要使用非静态字段、方法或属性,必须 首先创建一个对象实例。有关静态的详细信息,请参见 方法,请参见静态类和静态类成员。更多 有关创建类实例的信息,请参见实例 构造器

这里有一篇好文章(很多文章中的一篇!):


您的
单元layerCosNoption
变量声明为类变量,但您试图在静态上下文中访问它。在
静态
方法中,将
播放选项
标记为
静态
或提供类型为
播放选项
的对象。我还考虑到您的
单元
枚举是在代码中的其他地方定义的。

您的
单元layerCosNoption
变量声明为类变量,但您试图在静态上下文中访问它。在
静态
方法中,将
播放选项
标记为
静态
或提供类型为
播放选项
的对象。我还考虑到您的
单元
枚举是在代码中的其他地方定义的。

先生,对象还没有在那里吗?我需要你详细说明我的密码和错误。单元是一个枚举,正在从另一个文件引用。我发布的第二段代码没有错误,只是在我评论的地方。怎么了?先生,物体不在那里吗?我需要你详细说明我的密码和错误。单元是一个枚举,正在从另一个文件引用。我发布的第二段代码没有错误,只是在我评论的地方。那么怎么了?就像那样,添加“static”会导致错误消失。就像那样,添加“static”会导致错误消失。格雷西亚斯。