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
,请注意Main
是static
,因此不与Player
的任何给定实例相关联。所以你需要一个实例:
Player player = new Player();
因为ddd
是private
,你想要一些东西允许你访问那个字段。属性对于这类事情很有用。例如,将其定义为:
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;