IsSubclassOf
- 类继承测试
public class ClassA { }
public class ClassB : ClassA { }
public class ClassC : ClassB { }
Console.WriteLine(typeof(ClassB).IsSubclassOf(typeof(ClassA))); // TRUE
Console.WriteLine(typeof(ClassB).IsSubclassOf(typeof(ClassB))); // FALSE
Console.WriteLine(typeof(ClassB).IsSubclassOf(typeof(ClassC))); // FALSE
Console.WriteLine(typeof(ClassC).IsSubclassOf(typeof(ClassA))); // TRUE
Console.WriteLine(typeof(ClassC).IsSubclassOf(typeof(ClassB))); // TRUE
IsSubclassOf用于判断class之间是否继承。接口之间的继承无法进行判断。
- 接口继承测试
public interface ID { }
public interface IE : ID { }
public class ClassD : ID { }
Console.WriteLine(typeof(ClassD).IsSubclassOf(typeof(ID))); // FALSE
Console.WriteLine(typeof(IE).IsSubclassOf(typeof(ID)); // FALSE
- 泛型类测试
public class ClassF<T> { }
public class Cl

本文探讨了C#中`IsSubclassOf`和`IsAssignableFrom`两个方法的用法。`IsSubclassOf`主要用于判断一个类是否继承自另一个类,但不适用于接口间的检查。而`IsAssignableFrom`不仅检查类的继承关系,还能判断一个类型是否实现了指定接口,或者可以接收另一种类型的实例。
最低0.47元/天 解锁文章
1918

被折叠的 条评论
为什么被折叠?



