zoukankan      html  css  js  c++  java
  • 利用传入的Type类型来调用范型方法的解决方案

    起因:自定义一个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 { getset; } 
            
    public int userid { getset; } 
            
    public string Name { getset; } 
            
    public string test2() 
            { 
              
    // test1 <T>(); 
              我希望使用的是从外边传过来的类型tt来调用test1范型方法 
            } 
            
    public string test1 <T>() 
            { 
                
    return typeof(T).ToString(); 
            } 
            
        }

    解决方案:

    class MyClass
        {
            
    public Type tt { getset; }
            
    public int userid { getset; }
            
    public string Name { getset; }
            
    public string test2() 
            { 
                
    object result = typeof(MyClass).GetMethod("test1").
                    MakeGenericMethod(tt).Invoke(
    thisnull);
                
    return result.ToString();
            }
            
    public string test1<T>()
            {
                
    return typeof(T).ToString();
            }

        }
  • 相关阅读:
    Win10
    编码
    [转帖] Tomcat安全配置小技巧
    关于redis bind
    query data filtered by a JSON Column in SQLAlchemy
    Flask多线程环境下logging
    Flask request
    [转] MySQL树结构递归查询处理
    [转]了解BFF架构
    转载:ELK实战系列3-RabbitMQ+ELK搭建日志平台
  • 原文地址:https://www.cnblogs.com/nuaalfm/p/1397340.html
Copyright © 2011-2022 走看看