初始化器

1.对象初始化器

为了简化新建对象的过程,C#提供了对象初始化语法,语法是使用一个大括号,大括号内是使用逗号分隔的一个列表,列表中的每个成员映射到正在被初始化的对象的公共字段或属性。

面的代码在Main方法中使用对象初始化语法声明了一个Student对象。

 1 class Student
 2 {
 3   public string FirstName{ get;set; }
 4   public string LastName{ get;set; }
5   public Student(){}
6   public Student(string firstName, string lastName) 7   { 8     this.FirstName = firstName; 9     this.LastName = lastName; 10   } 11 } 12 13 static void Main(string[] args) 14 { 15   var student1 = new Student{FirstName = "Wang", LastName = "MeiMei"}; 16 }

上面的代码在后台隐式调用了Student类的默认构造函数,然后再给指定的属性赋值。

我们也可以在构建类型时,显式调用它的默认构造函数:

var student2 = new Student(){FirstName = "Li", LastName = "Lei"};

也可以调用类的任意的构造函数,假如在Student类中有一个用于设置Student的ID的构造函数:

1 class Student
2 {
3   public int ID{ get;set; }
4 
5   public Student(int id)
6   {
7     this.ID = id;
8   }    
9 }

我们可以这样使用对象初始化语法:

var student3 = new Student(10001){FirstName = "Mr", LastName = "X"};

 

2.集合初始化器

只能对支持Add()方法的类使用集合初始化语法。

1 //初始化整数的泛型list<>
2 List<int> myGenericList = new List<int>{ 0, 1, 2, 3, 4, 5 };

如果容器操作的是类或结构的集合,我们可以将对象初始化语法与集合初始化语法结合使用:

var students = new List<Student>{ new Student{FirstName = "Li", LastName = "Lei"}, new Student{FirstName = "Wang", LastName = “Meimei"} };
var studentDic = new Dictionary<int, Student> 
            {
                {100, new Student("Wang", "Meimei"){ID = 100}}, 
                {101, new Student("Li", "Lei") {ID = 101}}
            };

 

posted @ 2015-07-04 17:12  MrX1892  阅读(176)  评论(0编辑  收藏  举报