Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 要为我的常规列表设置什么访问修饰符?_C#_Generics - Fatal编程技术网

C# 要为我的常规列表设置什么访问修饰符?

C# 要为我的常规列表设置什么访问修饰符?,c#,generics,C#,Generics,在我的C#类中有一个通用列表。我想在我的表格中访问此列表的计数 我应该: a) 将通用列表公开 b) 创建属性以仅访问列表计数方法? c) ? b似乎是一个明显的选择,但它添加了很多额外的代码,因为它不更新 动态地。我必须随时手动更新变量(myCount=list.count) 列表已更改 只是一个新手,只是想寻求一些建议,谢谢。根据,或最少知识的原则,您应该使用选项B,并公开一个返回列表的Count属性的get-only属性 public int ItemsCount { get { re

在我的C#类中有一个通用列表。我想在我的表格中访问此列表的计数

我应该:
a) 将通用列表公开
b) 创建属性以仅访问列表计数方法?
c) ?

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

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

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

public int ItemsCount
{
  get { return _innerList.Count; }
}
您不需要手动更新任何变量,只需返回列表的
Count
属性即可

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

当然,这并不总是一个明确的例子,这是一个语义问题。这完全取决于外部类和列表的含义。LoD是一个一般准则、原则,但不是规则。你必须问自己:公开列表有意义吗?

对于选项b,你可以:
public int Count{get{return list.Count;}}}
我一般不同意。这可以归结为一个问题。外部类只应在计数是该类的某个逻辑属性时公开该计数,否则它只应公开该列表。在这种情况下,由于缺乏背景,很难决定选择哪种方式。