C#嵌套类

时间:2012-05-20 18:27:02

标签: c# class nested

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

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()为例。我怎么做到这一点?谢谢你的回答。

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分:0)

然后MyPlayer应该引用Movement实例。

public class MyPlayer : Player
{
    public static Movement movement = new Movement();
    ...
}