none
泛型方法(IsGenericMethod)和泛型方法定义(IsGenericMethodDefinition)的区别

答案

全部回复

  • 跑一下这段代码
    using System;  
    using System.Reflection;  
     
    class App {  
    [STAThread]  
    static void Main(string[] args) {  
       Type      ty = Type.GetType("System.Collections.Generic.Comparer`1");  
       Type[] targs = { typeof(System.Object) };  
       MethodInfo theMeth = null;  
     
       try{   
         MethodInfo[] ms = ty.GetMethods();  
         foreach(MethodInfo mi in ty.GetMethods()) {  
           if ( mi.Name == "get_Default" ) {  
         Console.WriteLine("mi={0} contains-generic={1} is-generic-meth={2} is-gen-def={3} gen-params={4}",   
                   mi,   
                   mi.ContainsGenericParameters,   
                   mi.IsGenericMethod,  
                   mi.IsGenericMethodDefinition,  
                   mi.GetGenericArguments().Length);  
             // create the generic method...  
         theMeth = mi.MakeGenericMethod(targs);  
         break;  
           }  
         }  
       } catch (Exception e) {  
         Console.WriteLine("{0}", e);     
       }  
       Console.WriteLine("resulting method: {0}", theMeth);  
     }  
    };

    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年8月31日 12:19
  • 代码是看得懂的,主要我是不清楚什么时候才能用来判断某个方法到底是不是泛型方法,因为这两个标识是由泛型类型的开放和封闭决定的吧
    2016年8月31日 12:57
  • 参考下 深入理解C# 第二版  第76-77页  主要讨论泛型与反射的应用

    或是这里可以参考下

    https://technet.microsoft.com/zh-cn/subscriptions/system.reflection.methodinfo.isgenericmethoddefinition(v=vs.85).aspx

    http://www.cnblogs.com/zhaopei/p/variability.html


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年8月31日 13:31
  • ?????

    2016年8月31日 13:36