< 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. 2019-4-23 plan
  2. python电影推荐算法_电影推荐系统python实现
  3. ElasticSearch fuzzy模糊查询(英文检索)
  4. MiniDao1.7.1 版本发布,轻量级Java持久化框架
  5. 【386天】跃迁之路——程序员高效学习方法论探索系列(实验阶段143-2018.02.26)...
  6. Window+Java环境证书生成说明,pfx证书已经生成
  7. 内外分离接口依赖及UIScrollView知识点
  8. 2018青岛ICPC ZOJ 4062: Plants vs. Zombies(二分)
  9. linux鼠标移动消失,debian6升级后鼠标指针消失
  10. python连接MongoDB,以及常用操作
  11. 比较3个购书网站,china-pub,dangdang,joyo(amazon)
  12. 怎么才能够坚持做一件事并且把它做好?
  13. 在R语言中如何打开一般方法打不开的中文xls文件?
  14. Python数据分析-绘图-2-Seaborn进阶绘图-6-回归图
  15. 数据结构课程设计(四):行车路线问题(C++、图、迪杰斯特拉算法、最短路径)
  16. 360n4手机可以装linux,360手机N4 root教程_360手机N4获取root权限的方法
  17. 基于jQuery的HTML打地鼠游戏
  18. Jackson之jackson-databind
  19. Linux挖矿病毒排查(通过redis入侵服务器原理)
  20. Maemo與Nokia N900

热门文章

  1. gcc/g++/make/cmake/makefile/cmakelists的恩恩怨怨
  2. Win32 编程
  3. ApiException
  4. 【算法】如何将一个文件分割成多份(C,Java语言实现)
  5. 【转载】FPGA静态时序分析——IO口时序
  6. mysqldump怎么用 mysqldump没反应 mysqldump语法错误 mysqldump备份 mysql恢复 source命令 采用Navicat备份与mysqldump备份的区别...
  7. Oracle创建上下文 SYS_CONTEXT
  8. servlet的请求转发与重定向
  9. BZOJ2795: [Poi2012]A Horrible Poem
  10. mysql中各种连接的区别