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)
{
...
}