本文摘自PHP中文网,作者黄舟,侵删。
下面小编就为大家带来一篇C#动态对象(dynamic)详解(实现方法和属性的动态)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧C#的动态对象的属性实现比较简单,如果要实现动态语言那种动态方法就比较困难,因为对于dynamic对象,扩展方法,匿名方法都是不能用直接的,这里还是利用对象和委托来模拟这种动态方法的实现,看起来有点javascript的对象味道:
1) 定义一个委托,参数个数可变,参数都是object类型:这里的委托多有个dynamic参数,代表调用这个委托的动态对象本身。
1 |
|
2) 定义一个委托转载对象,因为dynamic对象不能直接用匿名方法,这里用对象去承载:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
3) 定义一个动态对象:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
|
应用测试代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
虽然看起来上面有点Js定义对象方法的味道,但由于C#是静态语言,提供的动态模拟机制还是有限的,看起来是动态,但所有的值存放和方法都需要自己写代码去处理.
上面代码在vs2010,windows 2008 server,框架4.0 上测试OK.
以上就是C#动态对象dynamic实现方法和属性动态代码详解的详细内容!
相关阅读 >>
更多相关阅读请进入《C#》频道 >>

C#高级编程(第11版) C# 7 & .NET Core 2.0(.NET开发经典名著)
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。