C#自定义集合初始化器

来源:互联网 发布:2017淘宝查的太严了吧 编辑:程序博客网 时间:2024/05/22 14:15

集合类(比如ArrayList,List<T>)的初始化跟正常类型比起来,可以多出来一个花括号包起来的小尾巴,称为“集合初始化器”,举个栗子:

List<int> list = new List<int>() { 1, 2, 3, 4, 5 };
下面介绍如何在自定义类里也实现这个功能。该类需要两个条件:

1. 继承接口 IEnumerable

2. 实现公共方法 Add(...)

再次举栗子:

class Roster : IEnumerable{public List<string> names = new List<string>();public IEnumerator GetEnumerator(){return null;}public void Add(string name){names.Add(name);}}...Roster roster = new Roster() { "Tom", "Jerry" };等价于Roster roster = new Roster();roster.Add("Tom");roster.Add("Jerry");

这个例子里的 GetEnumerator() 方法是空的,不过并不影响我们正常使用集合初始化器。


0 0
原创粉丝点击