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);
            }
        }
    }
    

      

  • 相关阅读:
    sqlserver2005"此数据库没有有效所有者,因此无法安装数据库关系图支持对象"的解决方法
    重复表的复制操作
    重复表中连级下拉框采用数据源时,子级下拉框列表数据无法持久的问题
    SQL server2005连接与进程
    重复表操作
    XPath语法
    Request.ServerVariables 参数大全
    50个Sql语句
    Inside C++ new/delete and new[]/delete[]
    颜色空间
  • 原文地址:https://www.cnblogs.com/wucg/p/3852501.html
Copyright © 2011-2022 走看看