There are a couple things going on.
Since C# 6 properties can be assigned an initial value.
The default literal sets default value of a type. For a C# class that means null.
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/default#default-literal
If you try to set the property to default without the "!" then you'll see a warning. "CS8625 - Cannot convert null literal to non-nullable reference type."
Adding the "!" (C# ! (null-forgiving) operator) overrides the warning.
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/null-forgiving