Возможный дубликат:
Приведение против использования ключевого слова as в CLRНедавно я узнал о другом способе приведения. Вместо использования
SomeClass someObject = (SomeClass) obj;
можно использовать этот синтаксис:
SomeClass someObject = obj as SomeClass;
, который, кажется, возвращает null, если obj не является SomeClass, вместо того, чтобы генерировать исключение приведения класса.
Я вижу, что это может привести к NullReferenceException, если cast не удалось, и я пытаюсь получить доступ к переменной someObject. Так что мне интересно, что? Обоснование этого метода? Почему следует использовать этот способ преобразования, а не (старый) - он только, кажется, перемещает проблему неудачного преобразования «глубже» в код.