在我的C#类中是一个通用列表。我想以我的形式访问此列表的计数。
我应该:
a)将通用列表公开
b)创建一个只能访问Lists计数方法的属性?
c)??
b似乎是明显的选择,但它增加了很多额外的代码,因为它没有更新
动态。我必须随时手动更新变量(myCount = list.count
)
列表已更改。
只是一个新手,只是寻找一些建议,谢谢。
答案 0 :(得分:2)
根据Law of Demeter或最少知识原则,您应该使用选项B,并公开一个返回列表的Count
属性的get-only属性。
您无需手动更新任何变量,只需返回列表的Count
属性即可。
public int ItemsCount
{
get { return _innerList.Count; }
}
当然,这并不总是一个明确的案例,这是一个语义问题。这完全取决于外部类和列表的含义。 LoD是一般指导原则,但不是规则。你必须问自己:揭露清单是否有意义?