这样反射Take方法可以
var takeMethod = typeof(System.Linq.Queryable).GetMethod("Take");为什么反射First方法却不行?
var frstMethod = typeof(System.Linq.Queryable).GetMethod("First");  =>报错: 发现不明确的匹配。要如何修改才正确?

解决方案 »

  1.   

    var frstMethod = typeof(System.Linq.Queryable).GetMethods("First").First();
      

  2.   

    因为Take方法没重载,First方法有重载
      

  3.   

    caozhy
      你这么写编译都过不了的Sandy945
      要如何写才正确啊?
      

  4.   

    typeof(System.Linq.Queryable).GetMethod("First").Invoke(obj,null);
      

  5.   

    你确定你用的是 GetMethods 不是 GetMethod?怎么可能编译不了。
      

  6.   

    var frstMethod = typeof(System.Linq.Queryable).GetMethods().First(m => m.Name == "First");orvar frstMethod = typeof(System.Linq.Queryable).GetMethods().Where(m => m.Name == "First" && m.GetParameters().Length == 1).First();需要注意的是如果序列为空 First 会报错