给定下面的代码,position0
的初始化方式与position1
的初始化方式有什么区别?它们相等吗?如果没有,有什么区别?
class Program
{
static void Main(string[] args)
{
Position position0 = new Position() { x=3, y=4 };
Position position1 = new Position();
position1.x = 3;
position1.y = 4;
}
}
struct Position
{
public int x, y;
}
最佳答案
对象和集合初始化程序,用于初始化对象上的字段。
http://msdn.microsoft.com/en-us/library/bb384062.aspx
它们产生几乎相等的IL。乔恩·斯凯特(Jon Skeet)对真正发生的事情有答案。