Code like the following is a code smell and defies Polymorphism.

Specifically, a base class SHOULD NEVER need to know the details of its derived types.

Changes made to the DerivedType class should only change the DerivedType.

If (this is DerivedType)
{
   ...
}