易丰科技

标题: c# 4.0 新功能 4/n [打印本页]

作者: Calvin    时间: 2011-10-11 15:25
标题: c# 4.0 新功能 4/n
Dynamic lookup动态类型的支持。
可以呼叫方法,索引、属性,栏位等的操作,C# 会在执行时才进行型别的检查,而非一般在编译时就进行静态检查(static type checking)

  1. class ExampleClass
  2. {
  3.     public ExampleClass() { }
  4.     public ExampleClass(int v) { }

  5.     public void exampleMethod1(int i) { }

  6.     public void exampleMethod2(string str) { }
  7. }
复制代码
  1. static void Main(string[] args)
  2. {
  3.     ExampleClass ec = new ExampleClass();
  4. ec.exampleMethod1(10, 4); // 编译时会报错

  5.     dynamic dynamic_ec = new ExampleClass();
  6. dynamic_ec.exampleMethod1(10, 4); // 编译时不会报错,执行时会报错,因为没有两个参数的方法可用

  7.     dynamic_ec.someMethod("some argument", 7, null); // 编译时不会报错,执行时会报错
  8.     dynamic_ec.nonexistentMethod(); // 编译时不会报错,执行时会报错
  9. }
复制代码

几种可能用 dynamic 的地方
  1. class ExampleClass
  2. {
  3.     // A dynamic field.
  4.     static dynamic field;

  5.     // A dynamic property.
  6.     dynamic prop { get; set; }

  7.     // A dynamic return type and a dynamic paramater type.
  8.     public dynamic exampleMethod(dynamic d)
  9.     {
  10.         // A dynamic local variable.
  11.         dynamic local = "Local variable";
  12.         int two = 2;

  13.         if (d is int)
  14.         {
  15.             return local;
  16.         }
  17.         else
  18.         {
  19.             return two;
  20.         }
  21.     }
  22. }
复制代码










欢迎光临 易丰科技 (http://forum.yftek.com/) Powered by Discuz! X3