博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用传入的Type类型来调用范型方法的解决方案
阅读量:6118 次
发布时间:2019-06-21

本文共 931 字,大约阅读时间需要 3 分钟。

起因:自定义一个GridView控件,其数据源来源于一个通用方法Get<T>(),根据你传入的T到数据库中得到相应的数据,问题是定义GridView控件时没法在界面端设置使用泛型,只能在每个使用这个GridView控件时绑定数据。如果你没看懂这个起因也没关系,我们用一段代码来描述一下问题:

我希望使用的是从外边传过来的类型tt来调用test1范型方法

class Program 
    { 
        static void Main(string[] args) 
        { 
            MyClass m = new MyClass(); 
            m.tt = typeof(Program); 
            m.test2(); 
        } 
        
    } 
    class MyClass 
    { 
        public Type tt { get; set; } 
        public int userid { get; set; } 
        public string Name { get; set; } 
        public string test2() 
        { 
          // test1 <T>(); 
          我希望使用的是从外边传过来的类型tt来调用test1范型方法 
        } 
        public string test1 <T>() 
        { 
            return typeof(T).ToString(); 
        } 
        
    }

 

解决方案:

class MyClass
    {
        public Type tt { get; set; }
        public int userid { get; set; }
        public string Name { get; set; }
        public string test2() 
        { 
            object result = typeof(MyClass).GetMethod("test1").
                MakeGenericMethod(tt).Invoke(this, null);
            return result.ToString();
        }
        public string test1<T>()
        {
            return typeof(T).ToString();
        }
    }
 
 
内容分享自:http://www.cnblogs.com/nuaalfm/archive/2009/02/24/1397340.html 谢谢。
你可能感兴趣的文章
解决zabbix 3.0中1151端口不能运行问题
查看>>
售前工程师的成长---一个老员工的经验之谈
查看>>
Get到的优秀博客网址
查看>>
dubbo
查看>>
【Git入门之四】操作项目
查看>>
老男孩教育每日一题-第107天-简述你对***的理解,常见的有哪几种?
查看>>
Python学习--time
查看>>
在OSCHINA上的第一篇博文,以后好好学习吧
查看>>
高利率时代的结局,任重道远,前途叵测
查看>>
Debian 6.05安装后乱码
查看>>
欢迎大家观看本人录制的51CTO精彩视频课程!
查看>>
IntelliJ IDEA中设置忽略@param注释中的参数与方法中的参数列表不一致的检查
查看>>
关于软件开发的一些感悟
查看>>
uva 10806
查看>>
纯CSS3绘制的黑色图标按钮组合
查看>>
Linux中环境变量文件及配置
查看>>
从0开始学Flutter
查看>>
mysql操作入门基础之对数据库和表的增删改查
查看>>
IIS负载均衡
查看>>
分布式事务,EventBus 解决方案:CAP【中文文档】
查看>>