Тест · Наследование и интерфейсы · урок 10 из 10Тест — is и asЧем отличаются операторы is и as при проверке типа во время выполнения?[A]as работает с любым типом, как и is: o as int возвращает число, если в объекте лежит int, и 0 в остальных случаях, так же как o as Truck возвращает ссылку или null.[B]is сам выполняет приведение и выбрасывает InvalidCastException, если тип не подошёл, а as лишь возвращает bool — подошёл ли тип, поэтому после as приведение типа всё равно приходится писать отдельно самому.[C]Компилятор проверяет оба по объявленному типу переменной, поэтому для переменной типа Vehicle, которая ведёт к объекту Truck, is Truck даёт false, а as Truck — null, и всё это решается ещё до запуска программы.[D]is проверяет настоящий тип объекта и возвращает bool; форма x is T t ещё и кладёт ссылку в t. as приводит ссылку и вместо исключения возвращает null, поэтому работает только с типами, допускающими null.← НазадПроверка типа: is и asСледующая тема →12 · Перечисления, записи и паттерны