zoukankan      html  css  js  c++  java
  • C#新特性, dynamic, ExpandObject

    http://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject.aspx

    using System;
    using System.Collections.Generic;
    using System.Dynamic;
    using System.Linq;
    using System.Text;
    
    namespace TestCSharp
    {
        class ExampleClass
        {
            public ExampleClass() { }
            public ExampleClass(int v) { }
    
            public void exampleMethod1(int i) {
                Console.WriteLine(i);
            }
    
            public void exampleMethod2(string str) {
                Console.WriteLine(str);
            }
        }
    
        class Program
        {
            static void Main(string[] args)
            {
    
                ExampleClass ec = new ExampleClass();
                // The following call to exampleMethod1 causes a compiler error 
                // if exampleMethod1 has only one parameter. Uncomment the line
                // to see the error.
                //ec.exampleMethod1(10, 4);
    
                dynamic dynamic_ec = new ExampleClass();
                // The following line is not identified as an error by the
                // compiler, but it causes a run-time exception.
                dynamic_ec.exampleMethod1(10);
    
                // The following calls also do not cause compiler errors, whether 
                // appropriate methods exist or not.
                dynamic_ec.exampleMethod2("some argument");
                //dynamic_ec.nonexistentMethod();
    
                dynamic i = 10;
                ++i;
                
                Console.WriteLine(i+i);
    
                
                dynamic sampleObject = new ExpandoObject();
    
                // Create a new event and initialize it with null.
                sampleObject.sampleEvent = null;
    
                // Add an event handler.
                sampleObject.sampleEvent += new EventHandler(SampleHandler);
    
                // Raise an event for testing purposes.
                sampleObject.sampleEvent(sampleObject, new EventArgs());
                sampleObject.name = "ww";
                sampleObject.age = 23;
                Console.WriteLine("name={0},age={1}", sampleObject.name, sampleObject.age);
                ToStr(sampleObject);
               
                Console.ReadKey();
            }
            // Event handler.
            static void SampleHandler(object sender, EventArgs e)
            {
                Console.WriteLine("SampleHandler for {0} event", sender);
            }
    
            static void ToStr(dynamic sampleObject)
            {
                Console.WriteLine("ToStr:name={0},age={1}", sampleObject.name, sampleObject.age);
            }
        }
    }
    

      

  • 相关阅读:
    根据View获取该控制器
    富文本
    自定义cell,根据数据源,要对cell的布局进行调整,没有实现调整的相应效果
    NSTimer定时器
    textFiled输入字数的控制问题之—把带输入的拼音也判断了
    iOS 最值宏定义
    ios7.1 masonry布局中出现的问题
    串行队列、并行队列、同步、异步
    商标数字整数申请流程
    商标网上申请流程
  • 原文地址:https://www.cnblogs.com/wucg/p/3852501.html
Copyright © 2011-2022 走看看