0

ゲームループ (C#) のすべての更新で、更新されたデータが必要なオブジェクトがあります。更新ループを実行するオブジェクトのコンストラクターにオブジェクトを参照渡しして、参照が常に最新のオブジェクトになるようにする方がよいでしょうか。

または、通常はパラメーターとして Update メソッド (更新ごとに呼び出されます) に渡す必要がありますか?

したがって、これはコンストラクターとして:

public UpdatingObject(ref DataObject dataObject)

またはこれを更新ループ ヘッダーとして (デフォルトでは値渡し):

public void Update(DataObject dataObject)
4

2 に答える 2

2

必要に応じて参照渡ししてください。

ただし、DataObject クラスで update メソッドを定義し、別の複合クラスを定義して update を実行することはできますか? そんな感じ。

public class DataObject 
{
   public void Update()
   { 
     // define your update method.
   }
}
于 2012-07-05T03:00:41.207 に答える
2

必要な場合、つまり、別のオブジェクトを参照するために参照を再割り当てする必要がある場合は、参照渡しします。

void ByRef(ref object o)
{
    o = new object();
}

メソッドが設定を保証する場合は、oそれをoutパラメーターとして渡します。

デフォルトのセマンティクス (参照のコピーによる受け渡し) は、通常、オブジェクトのフィールド/プロパティのみを変更するため、ほとんどのニーズに適しています。

引数が値型の場合はref、呼び出し元に見えるように引数を変更するために使用する必要があります。

私の質問は; 引数をコンストラクターに変更するのはなぜですか? 私には少し奇妙に思えます。

于 2012-07-05T02:51:33.490 に答える