Хотя ответ Даниэля верен, я думаю, что было бы полезно добавить некоторый контекст о , почему вы можете увидеть использование пустого шаблона свойств. Рассмотрим этот пример метода контроллера, который нуждается в некоторой проверке:
public async Task<IActionResult> Update(string id, ...)
{
if (ValidateId(id) is { } invalid)
return invalid;
...
}
В приведенном выше примере ValidateId()
может возвращать ноль или экземпляр BadObjectRequestResult
. Если первый возвращается, проверка успешна и переходит к остальной части тела Update
. Если последний возвращается, is {}
равен true (то есть, конечно, экземпляр BadObjectRequestResult
равен object
), и проверка завершается неудачей.
Хорошо, из этого мы также предоставили имя переменной invalid
, которое мы можем немедленно вернуть. Без этого нам потребовалось бы немного больше подробного кода.
public async Task<IActionResult> Update(string id, ...)
{
var invalid = ValidateId(id);
if (invalid != null)
return invalid;
...
}
Независимо от того, является ли один из них более читабельным или другой - для читателя, я только что представил один из способов использования шаблона пустого свойства.