C# 类继承自类、类实现接口判断

类是否继承某个类

// IsSubclassOf TestChild是否为TestParent的子类
typeof(TestChild).IsSubclassOf(typeof(TestParent))

// IsAssignableFrom TestParent是否为TestChild的父类
typeof(TestParent).IsAssignableFrom(typeof(TestChild))

类是否实现某个接口

typeof(TestClass).GetInterface(typeof(InterfaceClass).Name)

typeof(TestClass).GetInterface("InterfaceClass")

Demo

private void Print(Type typea, Type typeb)
        {
            if (typeb.IsInterface)
            {
                // 是否实现了接口判断
                Console.WriteLine(string.Format("{0}实现了接口{1} {0} GetInterface {1} ====> {2}",
                typea.Name,
                typeb.Name,
                typea.GetInterface(typeb.Name) != null
                ));
            }
            else
            {
                Console.WriteLine(string.Format("{0}是{1}的子类 {0} IsSubclassOf {1} ====> {2}",
                typea.Name,
                typeb.Name,
                typea.IsSubclassOf(typeb)
                ));

                Console.WriteLine(string.Format("{0}是{1}的父类 {0} IsAssignableFrom {1} ====> {2}",
                typeb.Name,
                typea.Name,
                typeb.IsAssignableFrom(typea)
                ));
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值