C#3.0 序列教程 (2) - 类初始化器,集合初始化器
一、类初始化器
设有如下类:
class Point
{
int x, y;
public int Y
{
get { return
y; }
set { y = value;
}
}
public int X
{
get { return
x; }
set { x = value;
}
}
}
定义对象可以使用如下代码:var p = new Point { Y = 888, X = 1 };
类初始化器实际也是一种编译时技术,上面的这行代码,在编译时将会转成如下代码:
var p = new Point();
p.X = 1;
p.Y = 888;
也就是说 类必须有 无参公有构造函数 才可以使用 初始化器 技术
二、集合初始化器
看看下面的写法:
var lst = new List<int> {1,3,5,2,6,1};
var lst1 = new List<object> { "hello", 1, 3, 5, 2, 6, 1 };
实际也是一种编译时技术,也就是在编译时替换成了很多个Add(..