2011-11-08 9 views
1

代入文が作成されたときに、新しいオブジェクトが作成されていない場合は、代わりにオブジェクトへの参照が行われます。たとえば私は、次の操作を実行したい:XNAコピー要素、参照先を指定しない

word.start = newWordPos.First.Value; 
word.end = newWordPos.Last.Value; 

しかしnewWordPos.First.ValueまたはnewWordPos.Last.Valueの値が更新されるたびに、その後、word.startword.endも同様に更新されます。これが起こらないように実際の値を割り当てられるようにする方法はありますか?

+0

さらに詳しい情報やコードをお知らせください。これらの2行のコードからは、どのタイプで作業しているのかは不明です。あなたの質問には答えが難しいです。ここでNullable値型を扱っているようですね。再び、我々はこの時点でしか推測することができません。 – MattDavey

答えて

0

タイプがクラスなので、クローンを参照するだけでなく、オブジェクトをクローンする必要があります。

タイプ自体は、ディープコピーを作成するためのメカニズムを提供する必要があります。このフレームワークは、Cloneメソッドを許可するためのインタフェース(IClonable)を提供していますが、どのような形式のクローンが行われているのかは明らかではありません(フルディープクローンなど)。

+0

私はオンラインで見て、それについて話しているサイトを見つけました。コピーしたいデータは、XNA Frameworkによって提供されるVector2型です。私はVector2クラスのメソッドを実装する方法を知りません。 – McAvoy

+2

@McAvoy:それはXNA Vector2なので、構造体です。すでに完全コピーを行っているので、複製する必要はありません。 –

+0

リスト内のベクトルが変更されるたびに値が変わるのはなぜですか? – McAvoy

関連する問題