Каково хорошее использование оператора is?
Конструкция ниже для кастинга не является рекомендуемым способом, практически вся документация предпочитает as-operator с нулевой проверкой.
if(obj is SomeClass)
{
SomeClass some = (SomeClass)obj;
....
}
И уверен, что это (очень небольшое) увеличение производительности, а некоторые даже упоминают безопасность протектора. И да, это правда...
Итак, почему мы имеем оператор is?
Где "as-operator с нулевой проверкой" не работает или не подходит?
Имеет ли преимущество ограничение объема декларации, которую вы получаете, используя оператор is-operator?