コード例 #1
0
        public static void DoMain()
        {
            object weaklyTyped   = CreateCheesecake();
            var    stronglyTyped = GrottyHacks.Cast(weaklyTyped,
                                                    new { Fruit = "", Topping = "" });

            Console.WriteLine("Cheesecake: {0} ({1})",
                              stronglyTyped.Fruit, stronglyTyped.Topping);

            GrottyHacks.Cast(weaklyTyped, () => new { Fruit = "", Topping = "" });

            Console.WriteLine("Cheesecake: {0} ({1})",
                              stronglyTyped.Fruit, stronglyTyped.Topping);

            TestJoin <TestPerson, TestCity> join = new TestJoin <TestPerson, TestCity>();

            join.SelectFields(f => new { f.Id, f.Name });

            //var res= join.Select2( ()=> new {Id=1, Name="hello"});
            //Console.WriteLine(res.Name);

            //var res1= GrottyHacks.Cast(join.Select1((f,j)=> new { Id= f.Id, Name=f.Name}),
            //                           new{Id=1,Name="nomre"} );
            var res1 = join.Select1((f, j) => new { Id = f.Id, Name = f.Name });

            Console.WriteLine(res1.GetType());
            //join.SelectFields((f,j)=> new {f.Name, j.Name});


            var result = Repeat(new { Name = "Foo Bar", Age = 100 }, 10);

            Console.WriteLine(result);

            var newResult = GetDogsWithBreedNames((Name, BreedName) => new { Name, BreedName });

            Console.WriteLine(newResult);
            Console.WriteLine(newResult.Name);


            var sm = join.Select3((person, city) => new { Name = "Ciudad", Id = 1 });

            Console.WriteLine(sm);
        }
コード例 #2
0
 public object Select1 <TKey>(Expression <Func <TFrom, TJoin, TKey> > fields)
 {
     //return  new { fields};
     return(GrottyHacks.Cast(new { fields }, new { fields }));
 }