我不知道,如果標題是明確的,但基本上我想實現這樣的事情:如何實現實例編號?
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等
編輯:集裝箱ResetNames代碼:
int count = 1;
var effects = this.Effects.OrderBy (n => n.InternalId);
foreach (Effect effect in effects)
{
effect.ResetName (count);
++count;
}
如果這個代碼應該是thread-這可能有助於瞭解安全與否。 –
對不起,它不需要是線程安全的。 –
您是否可以添加實現ResetNames的容器中的代碼,以使其更容易遵循? – JohnFx