私はC#とコーディングに新しいので、私の無知を許してください。私は研究を試みましたが、私が探しているものは、おそらくC++では "ポインタ"と呼ばれていますが、C#では利用できないようです。私はリストからオブジェクトを "選択されたオブジェクト"として割り当て、それを "解放"するまで周りを回ることができるフィールドまたはプロパティが必要です。私はこれを試してみた:私がやっていることを達成するより正しい方法がありますか?
Entity GrabbedEntity;
List<Entity> Entities;
if (mouseDown)
GrabbedEntity = Entities[3];
if (mouseUp)
GrabbedEntity = null;
私は何を達成しようとしていることは基本的にはちょうど私が「grabbedEntity」割り当てられたオブジェクトを解放し、そして実際に「実体[3]」NULL値を作っていない、私はまだ欲しいですしかし、grabbedEntityの値を変更できるようにするには(mouseDownと= Entities [3]は簡潔にするため、状況に応じてリスト内の任意のオブジェクトにすることができます)。どのように私はそれを中心に活動してきたこれです:これは私がそれをするつもり正確に私が行うことができます割り当てられている間、私は、私の「エンティティ」リスト内のオブジェクトに「GrabbedEntity」を割り当てることができます動作します
List<Entity> Entities;
List<Entity> _grabbedEntityList = new List<Entity>();
Entity GrabbedEntity
{
get
{
if (_grabbedEntityList.Count < 1) return null;
else return _grabbedEntityList[0];
}
set
{
if (value == null) _grabbedEntityList.Clear();
else
_grabbedEntityList.Clear();
_grabbedEntityList.Add(value);
}
}
}
私がそれをリリースしたいのであれば、それをnullに設定するだけですが、実際にすでに存在しているものを回避しようとしているような気がします。すべての応答ありがとう。
あなたは、選択したアイテムをリストに入れたいと言っていますが、それが本質的に選択されている間は、リストの読者には読み取り専用または表示されません。 – mbrdev
あなたのリストは複数の要素を持つことが可能ですか? –
あなたの最初のアプローチがあなたのためにうまくいかないのはなぜですか? – poke