タイトルがクリアされている場合、私は知らないが、基本的に、私はこのような何かを実装しようとしています:インスタンスの番号付けを実装する方法は?
public class Effect
{
public int InternalId ...
public void ResetName() ...
}
ResetNameが呼び出されると、これはにオブジェクトの名前をリセットします:
"Effect " + someIndex;
だから私はEffect
の5つのインスタンスを持っている場合、彼らは名前に変更されます。
"Effect 1"
"Effect 2"
"Effect 3"
...
だから私は(別の方法を持っているResetNames
)を、それぞれのインスタンスに対してResetName
を呼び出す別のマネージャ/コンテナタイプに格納します。そして、今はResetName
に整数を渡さなければなりませんが、カウンタは自分自身をResetNames
の内部に保ちます。しかし、これはきれいではないと感じています。これは私がResetName
自分自身をマネージャークラスの外に呼び出すのを防ぎます。これは有効です。
これを行う方法/クリーナー?
InternalId
は、すべての作成オーダーを格納するIDです。だから、番号は32000のように、大きいので、私はちょうど、これらに頼ることができない、など
EDIT:コンテナResetNamesコード:多くの可能性の
int count = 1;
var effects = this.Effects.OrderBy (n => n.InternalId);
foreach (Effect effect in effects)
{
effect.ResetName (count);
++count;
}
このコードはスレッドことになっている場合、それは知って役立つかもしれません安全かどうか。 –
申し訳ありませんが、スレッドセーフである必要はありません。 –
これを簡単に実行できるようにResetNamesを実装するコンテナからコードを追加できますか? – JohnFx