码迷,mamicode.com
首页 > 其他好文 > 详细

利用传入的Type类型来调用范型方法的解决方案

时间:2015-04-27 23:35:06      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:

起因:自定义一个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 谢谢。

利用传入的Type类型来调用范型方法的解决方案

标签:

原文地址:http://www.cnblogs.com/songxingzhu/p/4461669.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!