Here at Doron's post about Object Initializers he raised a question about the IL generated from the compiler while generating Object Initializer.
//Object Initializer GeoPoint point1 = new GeoPoint() { X=22.555, Y=36.444, CoordinateSystem=GeographicCoordinateSystem.Wgs84 }; //Associative Init GeoPoint point3 = new GeoPoint(); point3.X = 22.555; point3.Y = 36.444; point3.CoordinateSystem= GeographicCoordinateSystem.Wgs84;
That two samples are not the same, this is because of not having an atomic assignment possibility at the second piece of code.you can have further reading at Bart's blog post.
Enjoy.
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.