Че значит восклицательный знак после default в С#?
public record Person
{
public string FirstName { get; init; } = default!;
public string LastName { get; init; } = default!;
};
Это "нулл-пофиг" оператор, влияет на ругань компилятора
https://github.com/dotnet/csharplang/blob/main/proposals/csharp-8.0/nullable-reference-types-specification.md
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/null-forgiving
Нужно писать либо так:
public record Person
{
public string? FirstName { get; init; }
public string? LastName { get; init; }
} ;
Либо так:
public record Person
{
public string FirstName { get; init; } = string.Empty;
public string LastName { get; init; } = string.Empty;
} ;
null forgiving оператор используется тогда, когда вы лучше компилятора знаете, что ваш объект не null. А в вашем случае код написан неправильно.