易丰科技

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3118|回复: 0
打印 上一主题 下一主题

c# 4.0 新功能 4/n

[复制链接]

111

主题

117

帖子

3588

积分

论坛元老

Rank: 8Rank: 8

积分
3588
跳转到指定楼层
楼主
发表于 2011-10-11 15:25:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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. }
复制代码





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|易丰科技

GMT+8, 2024-10-13 17:18 , Processed in 0.042499 second(s), 20 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表