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