Struct initialization and new operator
问题 I have two similar structs in C#, each one holds an integer, but the latter has get/set accessors implemented. Why do I have to initialize the Y struct with new operator prior to assigning the a field? Is y still a value type when I init it with new ? public struct X { public int a; } public struct Y { public int a { get; set; } } class Program { static void Main(string[] args) { X x; x.a = 1; Y y; y.a = 2; // << compile error "unused local variable" here Y y2 = new Y(); y2.a = 3; } } 回答1: