Top.Mail.Ru
Ответы

Че значит восклицательный знак после default в С#?

public record Person
{
public string FirstName { get; init; } = default!;
public string LastName { get; init; } = default!;
};

По дате
По рейтингу
Аватар пользователя
Новичок
Аватар пользователя
Мудрец

Нужно писать либо так:

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. А в вашем случае код написан неправильно.