为什么我不能在方法之外创建实例

Why I can't make instance outside of method

using System;

namespace FileApp
{

    public class status
    {
        public int speed;
    }

    public class Player
    {
        private status ddd = new status();
        ddd.speed = 3;


        static void Main()
        {
            status dd = new status();
            dd.speed = 3;
        }
    }

}

为什么我不能使用 ddd.speed?为什么我不能将 ddd.speed 设置为 3?请帮帮我..

你不能让语句(成员声明和初始化除外)直接在 class 下浮动 - 你需要将它们放在方法或构造函数中。

因为这样的逻辑语句属于方法,而不属于 class 定义。 class 定义可以定义 class 成员(字段、属性、方法),但不能执行命令式逻辑。

在您的 Main 方法中,您已经展示了如何执行此操作:

status dd = new status();
dd.speed = 3;

现在,如果您特别想在 Main 方法中访问 ddd,请注意 Mainstatic,因此不与任何关联给定 Player 的实例。所以你需要一个实例:

Player player = new Player();

并且由于 dddprivate,您需要一些东西来允许您访问该字段。 属性 对这类事情很有用。例如定义为:

private status ddd = new status();
public status DDD { get { return ddd; } }

您也可以将其简化为:

public status DDD { get; private set; } = new status();

然后您就可以在您的实例上访问它了:

Player player = new Player();
player.DDD.speed = 3;