初始化器

1. 对象初始化器

若定义匿名类型,则必须使用对象初始值设定项

//声明一个 StudentName 显示调用2参构造函数 
StudentName student1 = new StudentName("Craig", "Playstead");

//声明一个 StudentName对象初始化器,在声明中触发默认构造器,而不是2参的构造器
StudentName student2 = new StudentName
{
    FirstName = "Craig",
    LastName = "Playstead",
};
//声明一个 StudentName对象初始化器,不需要相应的构造函数,只有默认构造器来初始化对象
StudentName student3 = new StudentName
{
    ID = 183
};

//没有相应的构造函数
StudentName student4 = new StudentName
{
    FirstName = "Craig",
    LastName = "Playstead",
    ID = 116
};
//或者
StudentName student5 = new StudentName(){FirstName = "Craig", LastName = "Playstead",};
StudentName student6 = new StudentName("Craig", "Playstead"){ ID = 183 };

public class StudentName
{
// 默认构造函数 ,在对象初始化器初始化时触发
// 如果类中自定义了带参数的构造函数,编译不会生成默认的构造函数
// 如果没有默认的构造函数,则使用对象初始化时就会报错:没有实现无参的构造函数
// 更改public 为 private. 用对象初始化器会失败
public StudentName() { }

public StudentName(string first, string last)
{
FirstName = first;
LastName = last;
}

public string FirstName { get; set; }
public string LastName { get; set; }
public int ID { get; set; }

public override string ToString()
{
return FirstName + " " + ID;
}
}

2.集合初始化器

集合初始值设定项是一系列由逗号分隔的对象初始值设定项。

List<StudentName> students = new List<StudentName>()
{
  new StudentName {FirstName="Craig", LastName="Playstead", ID=116},
  new StudentName {FirstName="Shu", LastName="Ito", ID=112},
  new StudentName {FirstName="Gretchen", LastName="Rivas", ID=113},
  new StudentName {FirstName="Rajesh", LastName="Rotti", ID=114}
};
//或者
List<StudentName> students = new List<StudentName>
{
  new StudentName {FirstName="Craig", LastName="Playstead", ID=116},
  new StudentName {FirstName="Shu", LastName="Ito", ID=112},
  new StudentName {FirstName="Gretchen", LastName="Rivas", ID=113},
  new StudentName {FirstName="Rajesh", LastName="Rotti", ID=114}
};

3.匿名类型

//匿名类
var person = new { Name = "learning hard", Age = 25 };
// 定义匿名类型数组
var personcollection = new[] 
{
    new {Name ="Tom",Age=30},
    new {Name ="Lily", Age=22},
    new {Name ="Jerry",Age =32},    
};
原文地址:https://www.cnblogs.com/dennysong/p/5585227.html