public class Rectangle
{
public Point TopLeft { get; set; }
public Point BottomRight { get; set; }
}
static void CompareObjectInitMethods()
{
// 传统初始化方法
Rectangle r = new Rectangle();
Point p1 = new Point();
p1.X = 10;
p1.Y = 10;
r.TopLeft = p1;
Point p2 = new Point();
p2.X = 20;
p2.Y = 20;
r.BottomRight = p2;
// 对象初始化语法
Rectangle r2 = new Rectangle
{
TopLeft = new Point { X = 10, Y = 10 },
BottomRight = new Point { X = 20, Y = 20 }
};
}
类似于数组、序列的初始化:
// 初始化标准数组
int[] numbers = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
// 初始化一个ArrayList
ArrayList list = new ArrayList { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
// 初始化一个List<T>泛型容器
List<int> list2 = new List<int> { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
// 如果容器存放的是非简单对象
List<Point> pointList = new List<Point>
{
new Point { X = 2, Y = 2},
new Point { X = 3, Y = 3}
};