According to the book C#12 in a Nutshell:
Prior to C# 11, every field in a struct had to be explicitly assigned
in the constructor (or field initializer). This restriction has now
been relaxed.
However this:
using System;
Point point = new Point();
Console.WriteLine(point.X);
struct Point
{
public int X;
public int Y;
}
compiles and runs (returns 0) when compiled with .NET 5 (which is C#9 if I understand correctly? source: https://dotnet.microsoft.com/en-us/download/dotnet/5.0). MRE: https://dotnetfiddle.net/K6cu5z.