Что делают операторы `is` и `as`, чем они отличаются и где применяются?

is проверяет соответствие типу или образцу и может сразу связать переменную. as пытается привести к совместимому ссылочному или nullable-типу, возвращая null при неудаче.

Короткий ответ

Что ответить на собеседовании

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.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее