< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>

通过泛型方法定义具有特定类型意义的方法是常用的手段。但在某些特定情况下,例如在一些通用的框架中,直到运行时才能确定泛型类型参数,就必须通过非泛型方式来调用泛型方法。
假定有这样一个方法:
public static void Add<T>(T obj, IList<T> list)
{
      list.Add(obj);
}
如果想换成这样调用:
Add(Type type, object obj, object list);通常的方法是这样的:
void Add(Type type, object obj, object list)
{
    MethodInfo mi = typeof(MyType).GetMethod("Add");
    MethodInfo gmi = mi.MakeGenericMethod(type);
    gmi.Invoke(new object[] { obj, list });
}
#c#专栏

以非泛型方式调用泛型方法相关推荐

  1. 以非泛型方式调用泛型方法(三)

    结论: 以下是测试代码: using System; using System.Collections.Generic; using System.Reflection; using System.T ...

  2. 利用WPF建立自己的3d gis软件(非axhost方式)(九)SDK自带部分面板的调用

    原文:利用WPF建立自己的3d gis软件(非axhost方式)(九)SDK自带部分面板的调用 先下载SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bP ...

  3. 二叉树 —— 创建二叉树 先序遍历 、中序遍历、后序遍历(递归方式、非递归方式)

    #include<stdio.h> #include<malloc.h> #include<stdlib.h> typedef char DataType; #de ...

  4. [C#]泛型与非泛型集合类的区别及使用例程,包括ArrayList,Hashtable,ListT,DictionaryTkey,Tvalue,SortedListTkey,Tvalue,...

    今天有空正好把泛型和非泛型集合类写了一个比较,并做了个的例程,可以比较清楚的理解它们概念和使用方法. 泛型与非泛型集合类在C#程序中是非常重要的一个基础概念,这里列一个表来进行对比: 非泛型集合类 泛 ...

  5. java泛型程序设计——翻译泛型表达式+翻译泛型方法

    [0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 翻译泛型表达式+翻译泛型方法 的知识: [1]翻译泛型表达式 1.1 ...

  6. vuex 在非组件中调用 mutations 方法

    版权声明:本文首发 http://asing1elife.com ,转载请注明出处. https://blog.csdn.net/asing1elife/article/details/8265566 ...

  7. struts的action访问servlet的IOC方式与非IOC方式

    这是IOC方式,要实现相应接口 package loginAction; import com.opensymphony.xwork2.ActionSupport; import javax.serv ...

  8. php函数param太多,关于php:在非对象上调用成员函数bind_param()

    本问题已经有最佳答案,请猛点这里访问. 我正在尝试在此准备好的语句中绑定变量,但我一直收到错误: Call to a member function bind_param() on a non-obj ...

  9. 【cocos2d-x从c++到js】22:使用非侵入方式扩展UI系统接口的举例

    如何较好的运用脚本语言,使用他的动态性是关键.使用动态性来扩展代码,可以保证非侵入方式.这种方式,把原先的引擎代码和当前自己的二次开发代码隔离开了,便于后续的升级维护.而且,又不像继承那么重量级. 下 ...

  10. 把泛型传给泛型方法。

    public List<T> GetPageData<T>(Reader RetReader) {//正常调用Extends.ToList<T>(Reader Re ...

最新文章

  1. GROMACS运行参数之em_real.mdp文件详解
  2. 怎么装python解析器_linux 下安装 python 解析器
  3. SQL 解决in的参数烦恼(经典,简洁,高效)
  4. WCF系列(三) -- WCF配置文件注释 【转】
  5. 3dmax坐标系与导出fbx的坐标系
  6. python约瑟夫环_Python实现约瑟夫环问题的方法
  7. 【原创】构建高性能ASP.NET站点 开篇
  8. pg数据库开启远程连接_疫情之下,开启在家办公模式,远程连接工具篇之向日葵...
  9. 【Python】pdf2image模块+poppler将PDF转换为图片
  10. @PathVariable、@RequestParam、@RequestBody注解
  11. 【Presto】http-worker-103 com.facebook.presto.execution.SqlTaskManager Switching coordinator affinity
  12. java jstat结果分析_JVM调优总结 + jstat 分析
  13. 1026. 程序运行时间(15)
  14. 他实现了AlphaGo Zero的算法,发现可能还得训练1700年 | 代码
  15. 计算机毕业设计php的村镇干部绩效考核系统
  16. 论SVGA直播礼物特效对直播平台的重要性
  17. smartsvn 忽略文件夹_设置SVN忽略文件和目录(文件夹)
  18. 不吹不黑,这5款浏览器安全无广告无弹窗,亲测好用
  19. 车牌字符识别中ctc loss损失函数理解
  20. 蓝箭航天自主研发80吨液氧甲烷发动机喷管下线

热门文章

  1. Remoting调用的用户名密码问题
  2. RegularExpressions
  3. 操作系统面试题(二)
  4. 【2013】将x插入有序数列
  5. Tomcat 访问manager app报403 解决方案(虚拟机可以正常使用,外面访问报错)
  6. opengl工具库glfw一 创建窗口
  7. break与continue关键字的使用
  8. 为什么使用nginx反向代理
  9. SQL server 数据库调用远程数据库存储过程的实现方法
  10. nginx 502 .sock failed (11: Resource temporarily unavailable) while connecting to upstream