C#属性访问与接口实现
我正在编写一个类来表示一个集合,即Pivot识别的根对象。集合具有多个属性、一个刻面类别列表(每个由C#属性访问与接口实现,c#,inheritance,collections,C#,Inheritance,Collections,我正在编写一个类来表示一个集合,即Pivot识别的根对象。集合具有多个属性、一个刻面类别列表(每个由facetcography对象表示)和一个项目列表(每个由PivotItem对象表示)。因此,一个极其简化的集合如下: public class PivotCollection { private List<FacetCategory> categories; private List<PivotItem> items; // other attri
facetcography
对象表示)和一个项目列表(每个由PivotItem
对象表示)。因此,一个极其简化的集合如下:
public class PivotCollection
{
private List<FacetCategory> categories;
private List<PivotItem> items;
// other attributes
}
最后,第三个选项是组合选项1和选项2,以便PivotCollection
实现IList
,并具有一个属性facetcontegories
问题:这三个选项中哪一个最合适,为什么?这里最好的做法是创建自己的集合类,该类继承并重写
插入项
您不应该创建名为集合
的类。选择一个更具体的名称。编辑为PivotCollection
-这样会更好吗?因为它不是(直接)对象的集合,它可能不应该以集合
结尾。名称来自:每个类映射到相应的XML实体-PivotItem
,FacetCategory
,Facet
,等等
public class PivotCollection
{
private class CategoryList: IList<FacetCategory>
{
// ...
}
private readonly CategoryList categories = new CategoryList();
private readonly ItemList items = new ItemList();
public CategoryList FacetCategories
{
get { return categories; }
set { categories.Clear(); categories.AddRange(value); }
}
public ItemList Items
{
get { return items; }
set { items.Clear(); items.AddRange(value); }
}
}