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定義して、それにアクセスできます。movementMovement

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 に答える