C#使用扩展方法进行集合初始化
示例
实例化任何实现IEnumerable并具有名为方法的类时,可以使用集合初始化语法,该类具有一个Add采用单个参数的方法。
在以前的版本中,此Add方法必须是要初始化的类的实例方法。在C#6中,它也可以是扩展方法。
public class CollectionWithAdd : IEnumerable
{
public void Add<T>(T item)
{
Console.WriteLine("使用实例添加方法添加的项目: " + item);
}
public IEnumerator GetEnumerator()
{
//这里的一些实现
}
}
public class CollectionWithoutAdd : IEnumerable
{
public IEnumerator GetEnumerator()
{
//这里的一些实现
}
}
public static class Extensions
{
public static void Add<T>(this CollectionWithoutAdd collection, T item)
{
Console.WriteLine("使用扩展名添加方法添加的项目: " + item);
}
}
public class Program
{
public static void Main()
{
var collection1 = new CollectionWithAdd{1,2,3}; //在所有C#版本中均有效
var collection2 = new CollectionWithoutAdd{4,5,6}; //仅自C#6起有效
}
}这将输出:
使用实例添加方法添加的
项目:1使用实例添加方法添加的
项目:2使用实例添加方法添加的
项目:3使用扩展添加方法添加的
项目:4使用扩展添加方法添加的
项目:5使用扩展添加方法添加的项目:6
热门推荐
10 教培生日祝福语简短
11 上班祝福语简短文案
12 托班调皮祝福语简短
13 祝福语医生文案简短英文
14 喜欢表姐结婚祝福语简短
15 妹妹生日宴祝福语简短
16 未来婆婆新婚祝福语简短
17 送红包祝福语简短朋友
18 送花顾客祝福语简短的话