私は多少のインターフェースと継承を含むプロジェクトに取り組んでいますが、少し難しくなり始めていますが、今は問題に遭遇しました。ベースコンストラクタで 'this'を使用していますか?
私は、ゲームオブジェクトをコンストラクタ引数として取り込む抽象クラスStateを持っています。私のGameクラスのコンストラクタでは、状態を取ります。基本クラスのコンストラクタを呼び出すとき、抽象基本Gameクラスから継承するとき、それに初期状態オブジェクトを与えるという考えがあります。しかし、この状態のオブジェクトは、あなたがそれを作成している同じゲームにかかるコードは次のようになります。
public class PushGame : ManiaGame
{
public PushGame() :
base(GamePlatform.Windows, new PlayState(this), 60)
{
}
}
しかし、これは動作しません。コンストラクタが実行されるまで、 'this'キーワードは使用できないので、私は推測できます。あなたの基底クラスのコンストラクタでそれを使用しようとすると、明らかに動作しません。では、このための最善の回避策は何ですか?私の計画Bは、GameクラスのコンストラクタからState引数を削除し、その後コンストラクタコード内の状態を設定するだけです。
これを行うのが簡単で、邪魔にならない方法はありますか?
タイトルに「C#」などのプレフィックスを付けないでください。それがタグのためのものです。 –