当前位置:
首页 > Python基础教程 >
-
C#教程之C# 中一些类关系的判定方法
文章出自 https://www.cnblogs.com/vaiyanzi/p/10179829.html
1. IsAssignableFrom实例方法 判断一个类或者接口是否继承自另一个指定的类或者接口。
public interface IAnimal { } public interface IDog : IAnimal { } public class Dog : IDog { } public class Cate : IAnimal { } public class Parrot { }
var iAnimalType = typeof(IAnimal); var iDogType = typeof(IDog); var dogType = typeof(Dog); var cateType = typeof(Cate); var parrotType = typeof(Parrot); Console.WriteLine(iAnimalType.IsAssignableFrom(iDogType) ? $"{iDogType.Name} was inherited from {iAnimalType.Name}" : $"{iDogType.Name} was not inherited from {iAnimalType.Name}"); Console.WriteLine(iAnimalType.IsAssignableFrom(dogType) ? $"{dogType.Name} was inherited from {iAnimalType.Name}" : $"{dogType.Name} was not inherited from {iAnimalType.Name}"); Console.WriteLine(iDogType.IsAssignableFrom(dogType) ? $"{dogType.Name} was inherited from {iDogType.Name}" : $"{dogType.Name} was not inherited from {iDogType.Name}"); Console.WriteLine(iAnimalType.IsAssignableFrom(cateType) ? $"{cateType.Name} was inherited from {iAnimalType.Name}" : $"{cateType.Name} was not inherited from {iAnimalType.Name}"); Console.WriteLine(iAnimalType.IsAssignableFrom(parrotType) ? $"{parrotType.Name} inherited from {iAnimalType.Name}" : $"{parrotType.Name} not inherited from {iAnimalType.Name}"); Console.ReadKey();
输出结果:
IDog was inherited from IAnimal
Dog was inherited from IAnimal
Dog was inherited from IDog
Cate was inherited from IAnimal
Parrot not inherited from IAnimal
2.IsInstanceOfType 判断某个对象是否继承自指定的类或者接口
Dog d=new Dog(); var result=typeof(IDog).IsInstanceOfType(d); Console.WriteLine(result? $"Dog was inherited from IDog": $"Dog was not inherited from IDog"); Console.ReadKey();
输出结果:
Dog was inherited from IDog
3.IsSubclassOf 判断一个对象的类型是否继承自指定的类,不能用于接口的判断,这能用于判定类的关系
public interface IAnimal { } public interface IDog : IAnimal { } public class Dog : IDog { } public class Husky : Dog { } public class Cate : IAnimal { } public class Parrot { }
Husky husky = new Husky(); var result = husky.GetType().IsSubclassOf(typeof(Dog)); Console.WriteLine(result ? $"Husky was inherited from Dog" : $"Husky was not inherited from Dog");
输出结果:
Husky was inherited from Dog
这个方法不能用于接口,如果穿接口进去永远返回的都是false
Dog dog = new Dog(); var dogResult = dog.GetType().IsSubclassOf(typeof(IDog)); Console.WriteLine(dogResult);
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式