C#3.0 新特性学习笔记(1): 对象集合初始化器
对象集合初始化器
一. 介绍
(1)对象初始化
如果一个类有public字段,在建立类的对象实例时可以使用下面的代码来初始化这些字段;
public class PersonInfo
{
public string id;
public string name;
public string description;
}
PersonInfomy = new PersonInfo();
my.id= “9527”;
my.name = "Jack Dong";
my.description = "I am a Software Engineer";
在C#3.0中提供了一种更简便的方法来初始化这些public变量,代码如下:
PersonInfomy = new PersonInfo
{
id = “9527”,
name = "Jack Dong";
description = "I am a Software Engineer";
};
上面的代码的写法有些象带参数的构造方法,但这将并不是调用了PersonInfo的构造方法(因为PersonInfo并没有带三个参数的构造方法),
而只是C#编译器玩的一个魔术。实际上,上面的代码在编译后,仍然和使用传统的初始化字段的方法一样。只是在语法上看起来更简单(至少不
用写那么多个my)。
(2)集合初始化
集合初始化,不需通过ADD方法,以前比如构造个List,都要一个个现在就不用了 .
在C#3.0中改进了对集合类的初始化方式(使其初始化的方式类似于数组)。但遗憾的是,这种初始化方式只支持用泛型的集合类,也就是说,
只有实现了System.Collections.Generic. Cllection<T>的集合类才可以使用这种初始化方法。代码如下:
List<string> myList = new List<string> { "a", "b", "c" };
foreach (string str myList)
{
textBox1.AppendText(str);
}
二. 注意点
使用这种方法进行对象初始化,必须是public的字段(不能是protected、private或默认修饰符的字段)。