Код: Выделить всё
public sealed class Owner
{
public required Guid Id { get; init; }
public string? DisplayName { get; init; }
public string? GivenName { get; init; }
public string? Surname { get; init; }
public required string UserPrincipalName { get; init; }
public string? Email
{
get
{
return field ?? UserPrincipalName;
}
init;
}
public bool AccountEnabled { get; init; }
public string GetEmail() => Email ?? UserPrincipalName;
}
Если возвращаемый адрес электронной почты имеет значение null, то Мне следует использовать UserPrincipalName для отправки электронных писем.
Я хотел бы избавиться от функции GetEmail() и вместо этого полагаться на электронную почту свойство для получения электронной почты владельца. Однако как поле выражения ?? UserPrincipalName всегда имеет ненулевое значение, я хотел бы сообщить об этом компилятору, поэтому мне не нужно обрабатывать тип, допускающий значение NULL (
Код: Выделить всё
string?
Есть ли способ сообщить компилятору, что тип инициализации электронной почты является строкой ?, но тип get — строка?
Подробнее здесь: https://stackoverflow.com/questions/792 ... ows-that-t