一:集合类的定义
个人理解:将对象放入一个队列中,描述这个队列的类就成为集合类,至于如何访问集合类中的子类,实现队列中的方法即可!
二:使用集合类
在描述一个公司的雇员信息时,我们需要涉及到公司类、员工集合类、员工类,将他们分别定义如下:
1。员工类
class Employee { private string _name; public string Name { get { return _name; } set { _name = value; } } private int _age; public int Age { get { return _age; } set { _age = value; } } private string _sex; public string Sex { get { return _sex; } set { _sex = value; } } }
定义员工相关信息;
2.员工集合类
class Employees : CollectionBase { public Employees() { for (int i = 0; i < 10; i++) { this.AddContinerTotalData(new Employee()); //设置人员属性 } } public void AddContinerTotalData(Employee newEmployee) { List.Add(newEmployee); } public void Remove(Employee oldEmployee) { List.Remove(oldEmployee); } public Employee this[int Index] { get { return (Employee)List[Index]; } set { List[Index] = value; } } }
该类继承于CollectionBase,实现队列的各种特性,例如索引,添加、修改、删除等,这个类不一定要继承一般集合类实现的接口等,直接继承该类即可。如果需要实现其他的方法,可以继承IEnumerable、IList等接口实现
3。公司类
在实例化公司的时候应该就包含了改公司的员工集合等信息,所以该类我们应该如下定义
class company { public company() { _employeeres = new Employees(); } private Employees _employeeres; public Employees Employeeres { get { return _employeeres; } } }
当然,在实际情况中如此定义该类会有很多缺点,在这里主要记录集合类的使用,所以不必追究这些不合理的地方。
3。在项目中使用集合类
在项目中使用集合类时,应该满足如下情况,在实例化一个公司时分为两种情况,一种情况是实例化一个新公司,构造完新公司后向公司内添加员工信息等;另外一种情况是已经某公司,在实例化该公司时主需要传入该公司的名称,公司类在构造过程中应该自动加载所有员工的信息。
当我们需要访问员工的信息时,使用如下代码:
company c = new company(); foreach (Employee e in c.Employeeres) { Console.WriteLine(e.Name); }
在自定义集合类时,我们应该手动实现迭代,幸好这里我们继承了CollectionBase积累,它在内部实现了迭代的,所以我们在这里只需要迭代公司内的员工集合元素即可获得员工的详细信息