is проверяет соответствие типу или образцу и может сразу связать переменную. as пытается привести к совместимому ссылочному или nullable-типу, возвращая null при неудаче.
Что делают операторы `is` и `as`, чем они отличаются и где применяются?
is проверяет соответствие типу или образцу и может сразу связать переменную. as пытается привести к совместимому ссылочному или nullable-типу, возвращая null при неудаче.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
is проверяет соответствие типу или образцу и может сразу связать переменную. as пытается привести к совместимому ссылочному или nullable-типу, возвращая null при неудаче.
if (value is Customer customer)
{
Console.WriteLine(customer.Name);
}
Customer other = value as Customer;
Pattern удобен, когда нужен и факт проверки, и результат приведения. После as надо отдельно учитывать null, в том числе исходный null. As не выполняет произвольное числовое преобразование и не вызывает пользовательские операторы conversion. Явное приведение может выбросить исключение, а as при несовместимом значении возвращает null.