20310826 我才知道Linq 的 Select 是怎么写出来的
精力有限,文章从简从烂,反正也不为给别人看
鼓捣MVC有几天了,突然前几天琢磨HTML的那些那些方法,类似@Html.CheckFor,这种不固定返回类型的方法是怎么写出来的。再一想,之前对Linq里最普遍的Select方法就不明白。今天看了两眼源码才反应过来,是我2了,返回类型也是泛型就好了...
这是一个控制台的小例子:
namespace ConsoleApplication2 { public class GenerTest<T> { public K Test<K>(Func<T, K> expression) { return default(K); } } public class ABC { public string A { get; set; } public int B { get; set; } public DateTime C { get; set; } } class Program { static void Main(string[] args) { GenerTest<ABC> t = new GenerTest<ABC>(); t.Test(p => p.A); t.Test(p => p.B); t.Test(p => p.C); } } }
形式很简单,问题就在实际应用中,通过通过表达式取到想要的K类型的值要比例子中一个default要困难得多。这不在讨论范围内。