给定下面的代码,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)对真正发生的事情有答案。

10-06 01:00