> public int X { get; } is more consistent with how properties are declared. Consistency is important.
As mentioned in my other reply. If that were the case, why have they just changed the method declaration syntax? It's inconsistent and therefore unacceptable right? If everything has to be consistent we wouldn't have LINQ, lambdas, generics, etc.
The braces are for scope in C# and all C derivative languages. There is no scope being created here and no requirement for scope.
Also there are other places in C# where the scoping braces can be dropped [when there's only a single statement within]:
if(foo == 1)
{
bar();
}
Can be written:
if(foo == 1)
bar();
So I don't see the inconsistency at all if they were to drop the braces.
> If you care about clean code, here's an even better way public readonly int X
That's what I use. Cue the next round of discussion about fields and properties...