2016-10-13 9 views
0

私は2つのクラス、Game1Sceneを持っています。 Game1は、アクティブシーンのTick()機能を呼び出しています。引数としての自己参照

関数は次のようになります。

abstract public List<IRenderable> Tick(ref KeyboardState ks, ref MouseState ms, ref Game1 game); 

は、どのように私はリファレンスとしてGame1自体を渡すことができますか? thisを使用すると、読み取り専用のため動作しません。あなたがメソッドの復帰後tthisを割り当てることはできませんが、

var t = this; 
var result = scene.Tick(ref ks, ref ms, ref t); 

+0

操作がGame1.Tick()ですか? –

+0

方法は抽象ですか?それは実装されていますか? – Media

+0

これはデフォルトで参照番号 –

答えて

-1

あなたが別の変数を作成することができます。しかし、Tickへのパラメータがrefと宣言されている理由は明確ではありません。

+0

KeyboardStatesとMouseStatesはかなり重い要素です。 – PearlSek

+0

@PearlSek - 構造体ですか?それらが〜16バイトより大きい場合は、それらをクラスにする必要があります。それらがクラスの場合、メソッド内でそれらに代入している場合は、それらを 'ref'で渡すだけです。 – Lee

+0

XNAのクラスであるキーボードとマウスの要素は、 'ref'を必要としないかもしれません。私はGame1への参照を与える必要がありますので、Sceneはそのために行動できます。 – PearlSek