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;
    }
}
 
     
     
     
    