要为我的通用列表设置什么访问修饰符?

时间:2013-12-14 16:14:26

标签: c# generics

在我的C#类中是一个通用列表。我想以我的形式访问此列表的计数。

我应该:
a)将通用列表公开 b)创建一个只能访问Lists计数方法的属性?
c)??

b似乎是明显的选择,但它增加了很多额外的代码,因为它没有更新 动态。我必须随时手动更新变量(myCount = list.count) 列表已更改。

只是一个新手,只是寻找一些建议,谢谢。

1 个答案:

答案 0 :(得分:2)

根据Law of Demeter或最少知识原则,您应该使用选项B,并公开一个返回列表的Count属性的get-only属性。

您无需手动更新任何变量,只需返回列表的Count属性即可。

public int ItemsCount
{
  get { return _innerList.Count; }
}

当然,这并不总是一个明确的案例,这是一个语义问题。这完全取决于外部类和列表的含义。 LoD是一般指导原则,但不是规则。你必须问自己:揭露清单是否有意义?