C# typeof 与 示例的GetType()

2024-01-12 08:36

本文主要是介绍C# typeof 与 示例的GetType(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

创建两个类

namespace ConsoleApp1;public interface IBagItem
{public uint UId { get; set; }
}public class BagItem : IBagItem
{public uint UId { get; set; }
}public class DreamIslandBagItem : IBagItem
{public uint UId { get; set; }
}

测试 

namespace ConsoleApp1;public class TypeOfTest
{public static void Test(){var typeOfTest = new TypeOfTest();{IBagItem bagItem  = new BagItem();typeOfTest.TypeOf(bagItem);}Console.WriteLine("-------------------------");{IBagItem bagItem  = new DreamIslandBagItem();typeOfTest.TypeOf(bagItem);}Console.WriteLine("-------------------------");{BagItem bagItem  = new BagItem();typeOfTest.TypeOf(new List<BagItem>(){bagItem});}Console.WriteLine("-------------------------");{DreamIslandBagItem bagItem  = new DreamIslandBagItem();typeOfTest.TypeOf(new List<DreamIslandBagItem>(){bagItem});}/***ConsoleApp1.IBagItemIBagItem                      ConsoleApp1.BagItem           BagItem                       -------------------------     ConsoleApp1.IBagItem          IBagItem                      ConsoleApp1.DreamIslandBagItemDreamIslandBagItem            -------------------------     ConsoleApp1.BagItem           BagItem                       ConsoleApp1.BagItem           BagItem                       -------------------------     ConsoleApp1.DreamIslandBagItemDreamIslandBagItem            ConsoleApp1.DreamIslandBagItemDreamIslandBagItem */}public void TypeOf<T>(T t) where T : IBagItem{Console.WriteLine(typeof(T).FullName);Console.WriteLine(typeof(T).Name);Console.WriteLine(t.GetType().FullName);Console.WriteLine(t.GetType().Name);}public void TypeOf<T>(List<T> list) where T : IBagItem{Console.WriteLine(typeof(T).FullName);Console.WriteLine(typeof(T).Name);Console.WriteLine(list[0].GetType().FullName);Console.WriteLine(list[0].GetType().Name);}
}

如果 入参是 单个 T则:

typeof 输出 指向示例的类型 也就是 IBagItem

GetType() 输出 源类型

如果入参是List<T>则:

typeof 、GetType()  都 输出 源类型

这篇关于C# typeof 与 示例的GetType()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/597318

相关文章

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程

前端CSS Grid 布局示例详解

《前端CSSGrid布局示例详解》CSSGrid是一种二维布局系统,可以同时控制行和列,相比Flex(一维布局),更适合用在整体页面布局或复杂模块结构中,:本文主要介绍前端CSSGri... 目录css Grid 布局详解(通俗易懂版)一、概述二、基础概念三、创建 Grid 容器四、定义网格行和列五、设置行

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

C#中DrawCurve的用法小结

《C#中DrawCurve的用法小结》本文主要介绍了C#中DrawCurve的用法小结,通常用于绘制一条平滑的曲线通过一系列给定的点,具有一定的参考价值,感兴趣的可以了解一下... 目录1. 如何使用 DrawCurve 方法(不带弯曲程度)2. 如何使用 DrawCurve 方法(带弯曲程度)3.使用Dr

使用Python实现全能手机虚拟键盘的示例代码

《使用Python实现全能手机虚拟键盘的示例代码》在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Pyth... 目录一、项目概述:不止于键盘的远程控制方案1.1 创新价值1.2 技术栈全景二、需求实现步骤一、需求

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳