To cast, the actual object must be of a Type equal to or derived from the Type you are attempting to cast to...
or, to state it in the opposite way, the Type you are trying to cast it to must be the same as, or a base class of, the actual type of the object.
if your actual object is of type Baseclass, then you can't cast it to a derived class Type...