泛型的 typeof
static void Main(string[] args)
{
TestTypeOf<string>();
Console.ReadKey();
}
static void TestTypeOf<T>()
{
Console.WriteLine(typeof(List<T>).IsGenericType);//True
Console.WriteLine(typeof(List<T>).IsGenericTypeDefinition);//False
Console.WriteLine(typeof(List<>).IsGenericTypeDefinition);//True
Console.WriteLine("************************************************");
//根据一个已构造的类型,获取它的泛型类型定义
Console.WriteLine((typeof(List<T>).GetGenericTypeDefinition()));//System.Collection.Generic.List`1[T]
//Console.WriteLine((typeof(T).GetGenericTypeDefinition()));//会抛出异常,因为 typeof(T) 不是一个泛型类型
//根据一个定义的泛型类型,返回一个已构造的类型
Console.WriteLine((typeof(List<>).MakeGenericType(typeof(T))));//System.Collection.Generic.List`1[System.String]
Console.WriteLine("************************************************");
Console.WriteLine(typeof(T));//System.String
Console.WriteLine(typeof(List<>));//等价于 typeof(List<T>).GetGenericTypeDefinition()
Console.WriteLine(typeof(Dictionary<,>));//System.Collection.Generic.Dictionary`2[TKey,TValue]
Console.WriteLine(typeof(List<T>));//等价于 typeof(List<>).MakeGenericType(typeof(T))
Console.WriteLine(typeof(Dictionary<string, T>));//System.Collection.Generic.Dictionary`2[System.String,System.String]
Console.WriteLine(typeof(List<long>));//System.Collection.Generic.List`1[System.Int64]
Console.WriteLine(typeof(Dictionary<long, Guid>));//System.Collection.Generic.Dictionary`2[System.Int64,System.Guid]
}
泛型的 typeof的更多相关文章
- [C#]typeof,Gettype()和is的区别
typeof 参数是一个类型名称,比如你自己编写的一个类 GetType()是类的方法,继承自object,返回该实例的类型 is 用来检测实例的兼容性(是否可以相互转换) 例: class Anim ...
- 泛型c#(深入理解c#)
1.泛型带来的好处非常像静态语言较之动态语言的优点:更好的编译时检查,更多在代码中能直接表现的信息,更多的IDE支持,更好的性能.泛型的好处之一就是在编译时执行更多的检查,所以等到编译不在报错时,就极 ...
- C#中类型分析中的常见问题 Type - 转
http://www.cnblogs.com/yuanyuan/archive/2012/08/16/2642281.html 写代码的时候经常需要分析已有类型的信息例如:分析现有类型自动生成类, 或 ...
- .NET 用 Unity 依赖注入——概述注册和解析类型(1)
本文内容 Unity 概述 环境 一个真实的例子 类型注册(Type Registrations) 解析类型(Resolving Types) 跳槽,新公司使用了 Unity,初步看了一下,公司的使用 ...
- C#反射的一些经验[转载]
写代码的时候经常需要分析已有类型的信息例如:分析现有类型自动生成类, 或者为现有的类自动增加一些功能总结了一点点经验以ClassA a; 为例1. 通过typeof(ClassA) 或者 a.Get ...
- C#中反射type记录
写代码的时候经常需要使用反射相关的东西例如:分析现有类型自动生成类, 或者为现有的类自动增加一些功能总结了一点点经验以ClassA a; 为例1. 通过typeof(ClassA) 或者 a.Get ...
- Net is as typeof 运行运算符详解 net 自定义泛型那点事
Net is as typeof 运行运算符详解 概述 在了解运行运算符的前提我们需要了解什么是RTTI ,在任何一门面向对象的语言中,都有RTTI这个概念(即 运行时). RTTI(Run-Ti ...
- 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- C#的泛型的类型参数可以有带参数的构造函数的约束方式吗?
Review后看到标题让我十分羞愧自己语文功底太差,估计...请见谅......我还特地把这句写回开头了...... 问题 前天遇到的一个问题,所以在MSDN发了个问,刚也丰富了下问题,关于泛型的. ...
随机推荐
- jQuary学习の二の语法
jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作.基础语法: $(selector).action() 美元符号定义 jQuery 选择符(selector)"查询& ...
- openflow 和 sdn (软件定义网络) 原理和教程
OpenFlow概述 OpenFlow简介 通俗的讲,OpenFlow是使用类似于API进程配置网络交换机的协议.OpenFlow的思路很简单,网络设备维护一个FlowTable并且只按照FlowTa ...
- asp.net中http接口的开发
第一篇博客,如有不足请大家多多谅解. 最近一段时间主导着一个app的开发.所有功能都交给后台接口进行处理.采用http,传输的数据类型为json. http接口是一种基于基于TCP.http服务的ap ...
- WordPress添加个性化的博客宠物的方法
在很多的网站上都看见过这种效果,于是自己也想试试.看见我网站上的小宠物了吗,就是这种效果. 不多说,方法如下: 工具: 下载地址:http://yunpan.cn/cFUmZB8WWthty 访问密码 ...
- 解决python本地离线安装requests问题
使用python36进行本地requests安装的时候,由于安装requests需要联网,导致安装失败,现象如下: 一开始以为,需要安装什么证书,其实只是需要一个python的证书库,(⊙﹏⊙)b 执 ...
- OpenCV与Qt的环境搭建及Demo
前言: 前段时间写了很多OpenCV的程序,虽然重点在算法上,但图像窗口只能靠cvNamedWindow,效果很不理想.遂希望用Qt配合OpenCV使用,为我的程序建立图形化界面.然而,依我对Open ...
- java函数回调
Class A实现接口CallBack callback--背景1 class A中包含一个class B的引用b --背景2 class B有一个参数为callback的方法f(CallBack c ...
- 笔记:MyBatis 其他特性
多行结果集映射成Map 如果你有一个映射语句返回多行记录,并且你想以HashMap的形式存储记录的值,使用记录列名作为key值,而记录对应值或为value值.我们可以使用sqlSession.sele ...
- poj-1056-IMMEDIATE DECODABILITY(字典)
Description An encoding of a set of symbols is said to be immediately decodable if no code for one s ...
- java人民币读法转换
实现浮点数转换成人民币读法字符串 编写一个程序,将浮点数转换成人民币读法字符串,例如,将1006.333转换为壹千零陆元叁角叁分. 题意分析: 将浮点数分成整数部分和小数部分,分开处理整数部分和小数部 ...