C# IsAssignableFrom & IsInstanceOfType & IsSubclassOf & Is
直观测试代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | public partial class NaviControl : UserControl, ITestControl { public NaviControl() { InitializeComponent(); Load += NaviControl_Load; } private void NaviControl_Load( object sender, EventArgs e) { Debug.Print($ "Base.IsAssignableFrom:" ); Debug.Print($ "{typeof(UserControl).IsAssignableFrom(this.GetType())}" ); //True Debug.Print($ "{typeof(ITestControl).IsAssignableFrom(this.GetType())}" ); //True Debug.Print($ "This.IsAssignableFrom:" ); Debug.Print($ "{this.GetType().IsAssignableFrom(typeof(UserControl))}" ); //False Debug.Print($ "{this.GetType().IsAssignableFrom(typeof(ITestControl))}" ); //False Debug.Print($ "Base.IsInstanceOfType:" ); Debug.Print($ "{typeof(UserControl).IsInstanceOfType(this)}" ); //True Debug.Print($ "{typeof(ITestControl).IsInstanceOfType(this)}" ); //True Debug.Print($ "This.IsSubclassOf:" ); Debug.Print($ "{this.GetType().IsSubclassOf(typeof(UserControl))}" ); //True Debug.Print($ "{this.GetType().IsSubclassOf(typeof(ITestControl))}" ); //False Debug.Print($ "This.Is:" ); Debug.Print($ "{(this is UserControl)}" ); //True Debug.Print($ "{(this is ITestControl)}" ); //True } } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 聊一聊 操作系统蓝屏 c0000102 的故障分析
· SQL Server 内存占用高分析
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· 盘点!HelloGitHub 年度热门开源项目
· DeepSeek V3 两周使用总结
· 02现代计算机视觉入门之:什么是视频
· C#使用yield关键字提升迭代性能与效率
· 2. 什么?你想跨数据库关联查询?