0

我正在尝试在我的主类中创建一些嵌套类。

public class MyPlayer : Player
{

    public bool TargetEnemy()
    {
        return true;

    }

    public class Movement
    {
        public uint aInt = 1;

        public TurnLeft()
        {

        }
    }

    public class ActionBar
    {

    }
}

我有许多不同的类,这样我就可以通过代码访问 MyPlayer 类,而无需将其传递给所有类。我刚刚创建了一个静态类来保存它的变量。我可以使用 Main.Units.MyPlayer.Movement 访问 MyPlayer->Movement 但这没有链接到我在静态类中定义的 MyPlayer 实例。

例如,我希望能够执行 MyPlayer->Movement->TurnLeft()。我将如何实现这一目标?感谢您的回答。

4

2 回答 2

2

您可能将类嵌套与类组合的概念弄错了。为了Movement在您的类中有一个实例Player,您可以定义一个私有字段movement和一个公共属性Movement来访问它。

public class Player
{        
    public bool TargetEnemy()
    {
        return true;            
    }

    private Movement movement = new Movement();

    public Movement Movement
    {
        get { return movement; }
        set { movement = value; }
    }
}

public class Movement
{
    public uint aInt = 1;

    public TurnLeft()
    {

    }
}

public class ActionBar
{

}

然后,您可以创建Player类的实例并访问其包含的Movement

Player myPlayer = new Player();
myPlayer.Movement.TurnLeft();
于 2012-05-20T18:32:32.637 回答
0

然后MyPlayer应该有一个Movement实例的引用。

public class MyPlayer : Player
{
    public static Movement movement = new Movement();
    ...
}
于 2012-05-20T18:29:40.057 回答