【C#】获取泛型<T>的真实类型
需求:在包含泛型T的类或方法中,想要根据T的具体类型,进行相应的处理,需求伪代码如下:
public void Test<T>()
{
    if(T is string)
    {
        // do something
    }
    else if (T is Student)
    {
        // do somthing
    }
}最快捷的办法:
public void Test<T>()
{
    Type t = typeof(T);
    if (t.Name.Equals("Student"))
    {
        // do something
    }
}换一种思路: 
如果只是为了解决本文情景下的需求,如果已经能确定T是哪几种类型,也可以通过传参来实现if…else分开处理(参数是枚举类型)。
如果数据是List< T >且内容不为空,可以根据内容Item来反射获取类型。
重要的参考:
【C#】获取泛型<T>的真实类型的更多相关文章
- [改善Java代码]数组的真实类型必须是泛型类型的子类型
		List接口的toArray方法可以把一个结合转化为数组,但是使用不方便,toArray()方法返回的是一个Object数组,所以需要自行转变. toArray(T[] a)虽然返回的是T类型的数组, ... 
- java 编程基础  反射方式获取泛型的类型Fileld.getGenericType() 或Method.getGenericParameterTypes(); (ParameterizedType) ;getActualTypeArguments()
		引言 自从JDK5以后,Java Class类增加了泛型功能,从而允许使用泛型来限制Class类,例如,String.class的类型实际上是 Class 如果 Class 对应的类暂时未知,则使 C ... 
- Gson通过借助TypeToken获取泛型参数的类型的方法
		最近在使用Google的Gson包进行Json和Java对象之间的转化,对于包含泛型的类的序列化和反序列化Gson也提供了很好的支持,感觉有点意思,就花时间研究了一下. 由于Java泛型的实现机制,使 ... 
- Gson通过借助TypeToken获取泛型参数的类型的方法(转)
		最近在使用Google的Gson包进行Json和Java对象之间的转化,对于包含泛型的类的序列化和反序列化Gson也提供了很好的支持,感觉有点意思,就花时间研究了一下. 由于Java泛型的实现机制,使 ... 
- struts2学习笔记(3)---Action中訪问ServletAPI获取真实类型的Servlet元素
		一.源码: struts.xml文件: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE s ... 
- java获取泛型信息
		总结一下java中获取与泛型相关的信息的知识,不如说是使用方法.网上也有很多类似的优秀文章,这里主要做一个知识的总结.通过反射获取泛型信息的常见例子: //bean package testProje ... 
- 关于 JavaScript 的 null 和 undefined,判断 null 的真实类型
		null.undefined 博客地址: https://ainyi.com/39 undefined:表示一个变量最原始的状态,而非人为操作的结果 null:表示一个对象被人为的重置为空对象,而非一 ... 
- 父类通过泛型获得子类Class类型 以及Type体系
		1.背景介绍 在实现SSH框架中,DAO层向数据库持久化的过程中,因为大部分保存对象的方法都会调用到sava():所有索性就把save delete update select 方法进行封装到父类中, ... 
- 获取泛型的class 反射
		最近在使用Google的Gson包进行Json和Java对象之间的转化,对于包含泛型的类的序列化和反序列化Gson也提供了很好的支持,感觉有点意思,就花时间研究了一下. 由于Java泛型的实现机制,使 ... 
随机推荐
- 微信小程序独家秘笈之抽奖大转盘
			代码地址如下:http://www.demodashi.com/demo/14209.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ... 
- PHP-多域名单点登陆方案
			1.只是二级域名不同(比如a.xx.com, b.xx.com) 利用cookie, 设置domain为".xx.com"即可 2.多个本域名都不相同(比如www.a.com, w ... 
- @Autowired(required = false)
			标记在 方法上的时候,它会根据类型去spring容器中寻找 对于的形参并且注入. @Repository(value="userDao") public class UserDao ... 
- SVN访问版本库精细的权限控制
			SVN精细权限控制本章将详细介绍前一章所涉及的两个配置文件, svnserve.conf 和 authz.conf,通过对配置逐行的描述,来阐明其中的一些细节含义.除此之外的其他配置.安装等内容,不是 ... 
- HDUOJ---三角形(组合数学)
			http://acm.hdu.edu.cn/showproblem.php?pid=1249 三角形 Time Limit: 2000/1000 MS (Java/Others) Memory ... 
- 手机web——自适应网页设计(html/css控制)(转)
			一. 允许网页宽度自动调整: "自适应网页设计"到底是怎么做到的?其实并不难. 首先,在网页代码的头部,加入一行viewport元标签. <meta name="v ... 
- 2014年15款新评定的最佳PHP框架
			通常,框架都会被认为是帮助开发者快速设计和开发动态网站的软件应用.每个月都有极大数量的新发布的 PHP 框架,使网站开发更简单更高效. 如果你是位 PHP 开发者,正在寻找当前最好的一些 PHP 框架 ... 
- 使用Windbg调试.Net应用程序 [转]
			Windbg+Procdump解决w3wp.exe CPU过百问题[转] High CPU Dump收集工具 - ProcDump使用方法[转] ProcDump v9.0[官方] windbg查找c ... 
- 分析一帧基于UDP的TFTP协议帧
			下图是UDP的段格式: 相比TCP段格式,UDP要简单得多,也没啥好说的,需要注意的是UDP数据长度指payload加上首部的长度. 下面分析一帧基于UDP的TFTP协议帧: 以太网首部 0000: ... 
- [转]四种π型RC滤波电路
			1.典型π型RC滤波电路 图7-27所示是典型的兀型RC滤波电路.电路中的Cl.C2是两只滤波电容,Rl是滤波电阻,Cl.Rl和C2构成一节π型RC滤波电路.由于这种滤波电路的形式如同字母π且采 ... 
