IsSubclassOf & IsAssignableFrom

本文探讨了C#中`IsSubclassOf`和`IsAssignableFrom`两个方法的用法。`IsSubclassOf`主要用于判断一个类是否继承自另一个类,但不适用于接口间的检查。而`IsAssignableFrom`不仅检查类的继承关系,还能判断一个类型是否实现了指定接口,或者可以接收另一种类型的实例。
摘要由CSDN通过智能技术生成

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 ClassG<T
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值