Если ваша цель состоит в том, чтобы действительно привести объект, вы должны сделать это следующим образом:
Type typeObject = x as Type;
if(typeObject != null)
{
...
}
Первая строка пытается привести объект к "x", и если не удалось, typeObject будет иметь значение nullзначение.Этот подход лучше, чем оператор is, потому что он приведёт объект только один раз.Подход is пытается привести объект к объекту и, если успешно, возвращает true, но обычно внутри if, если вы приведете его снова, вот так:
if(x is Type)
{
Type typeObject = (Type)x;
...
}
В этом коде фактически есть два преобразования, одно в операторе isи внутри if.