在C#中,當我想封裝一個List時,我把它放在一個類的內部,並在其中拋出一些輔助方法。但是,我注意到,只要我想遍歷項目列表,我只是返回列表。簡單。然而,這有什麼不好的是,我無法分辨列表是否被某種方法錯誤修改過。通過方法調用封裝C#列表
原來這就是我一直在做:
class Animals
{
private List<Dog> _dogs;
public List<Dog> Dogs
{
get { return _dogs; }
}
}
要conteract這一點,我想這樣做的:
class Animals
{
private List<Dog> _dogs;
public Dog GetDog(int dogid)
{
return _dogs[dogid];
}
public int Count
{
get { return _dogs.Count; }
}
}
我用這種方法真正的問題在於這樣一個事實:每一次我想要列表中的項目,必須調用一個方法。這意味着如果我想遍歷列表,我必須設置一個循環,以便在每次迭代中調用Animals.GetDog(i)
的次數爲Animals.Count
。
這是否會影響我的程序?有沒有更適合完成同樣事情的方法?
我已經看過封裝列表的方式,但它們看起來相當複雜。我的主要目標是不要將_dogs
列表暴露給班級以外的任何人。
爲什麼你不想在第一個地方公開列表?只是問,因爲沒有答案,很難說如何幫助你。 –
我真的不知道你的問題。你想要做什麼? –
我不想公開基礎列表,因爲這樣做可以讓外部類修改列表中的值,而不需要知道容器類。 – Sam