代码分析二:泛型方法与反射
2013-12-17 22:11
363 查看
泛型在类型安全,对于值操作的性能,代码的表现力上有极大的意义。
在CSharpInDepth中,有一个结合泛型方法和反射的例子,代码抄了一遍贴上:
在CSharpInDepth中,有一个结合泛型方法和反射的例子,代码抄了一遍贴上:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Reflection; namespace GenericTest20131211 { class ReflectionTest { public static void PrintMethod<T>() where T: class { Console.WriteLine(typeof(T)); } } class Test_RefelectionTest { public static void Test() { //通过typeof操作,获取对ReflectionTest这个类的引用 Type classtype = typeof(ReflectionTest); //有了类的引用,就可以按照方法的名称获取方法的引用 MethodInfo methodInfo = classtype.GetMethod("PrintMethod"); MethodInfo construct; //恢复一个方法的调用 construct = methodInfo.MakeGenericMethod(typeof(string)); if (construct != null) construct.Invoke(null, null); //静态方法,无参数,直接调用 } } }结论:一个很标准的映射操作,难能可贵的是,这个Demo演示了对于泛型方法的调用。现在理解的反射,跟非.net环境中调用DLL的一般步骤很相像:获取操作的一个接口,然后按照方法的名称来获取方法的引用,调用方法的时候传递正确的参数即可。
相关文章推荐
- Python 处理数据库返回结果
- java 集合一个键对应多个值
- flex myeclipse安装.
- 回调、匿名函数、闭包在PHP中的应用
- java里的MouseLisetener接口的使用过程==========需要用组件是来注册侦听器
- 创建和使用动态链接库 (C++)
- 创建和使用静态库 (C++)
- 如何在 Visual Studio 中混合编译C# 和 C++代码,生成单一的DLL?
- 从零开始学习 ASP.NET MVC 1.0 (三) Controller/Action 深入解析与应用实例
- Ubuntu12.04LST 上搭建 TELNET服务 SSH服务 TFTP服务,NFS服务等基本命令,防火墙
- 从零开始学习 ASP.NET MVC 1.0 (二) 识别URL的Routing组件
- JAVA笔记【20131217】
- 将matlab中数据保存为txt或dat格式
- 从零开始学习ASP.NET MVC 1.0 (一) 开天辟地入门篇
- MyEclipse For Mac 快捷键列表
- STP(802.1d)
- PYTHON ASP FRAMEWORK
- Struts2 参数 表单 提交 对象 POJO 方法大全
- java代码实现鼠标双击出现画图-----------paint()方法由系统自动调用,且一定是小写的字母p
- java 自定义LineNumerReader