public abstract class BaseClass {} public class ClassA : BaseClass { } public class ClassB : ClassA {} public class TestClass { static int Main () { object x = new ClassB(); if (!(x is ClassA)) return 1; if (!(x is BaseClass )) return 2; return 0; } }