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要困难得多。这不在讨论范围内。

posted @ 2013-08-26 11:11  apodemakeles  阅读(253)  评论(0编辑  收藏  举报