注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Bioinformatics home

 
 
 

日志

 
 

C# dynamic 彻底体验  

2014-11-22 22:48:54|  分类: C# |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
public class Dynamic2
    {
        public static void testDynamic()
        {

            dynamic pp = new ExpandoObject();
            pp.Name = "xie";
            pp.Age = 12;
            // define a method for pp
            pp.Increment = (Action<int, string>)((a, b) =>
            {
                pp.Age++;
                Console.WriteLine("a is :" + a.ToString());
                Console.WriteLine("b is :" + b);
                Console.WriteLine("Fuliang");

            });

            //define a funciton for pp
            pp.Add = (Func<int, int, int>)((a, b) =>
            {
                Console.WriteLine("FuliangFunc");
                return pp.Age + a + b;
            });


            //register a method for pp
            pp.Print = null;
            pp.Print += new EventHandler(Dynamic2.PrintOtherInfo);

            //print dynamic object
            Console.WriteLine("################print dynamic object#############");
            PrintPeople(pp);
            Console.WriteLine("################end of print dynamic object#############");


            Console.WriteLine("################execute registered method Print#############");
            pp.Print(pp, new EventArgs());
            Console.WriteLine("################end of execute registered method Print#############");


            //execute Increment method 
            Console.WriteLine("################execute Increment method #############");
            pp.Increment(200, "kkk");
            Console.WriteLine("################end of execute Increment method #############");

            Console.WriteLine(pp.Age);

            //exetue Add Function

            Console.WriteLine("################execute funciton Add #############");
            Console.WriteLine(pp.Add(1000,100));
            Console.WriteLine("################end of execute funciton Add#############");
        }

        static void PrintPeople(dynamic p)
        {
            Console.WriteLine("name is :"+p.Name);
            Console.WriteLine("age is :" + p.Add(10,20).ToString());
          //  p.Do();
        }

        static void PrintOtherInfo(object sender, EventArgs e)
        {
            //might have exception, need to capture it
            dynamic aa =  sender;
            Console.WriteLine("new nam is:" + aa.Name);
            Console.WriteLine("OtherInfo");
        }
    }
  评论这张
 
阅读(753)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017