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


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。速度到3?请帮帮我……

你不能让语句(除了成员声明和初始化)直接在类的下面浮动——你需要把它们放在方法或构造函数中。

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

在你的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;

最新更新