日期:2014-05-17  浏览次数:20831 次

.NET动态数据类型 是什么意思
刚学.NET 想问问C#动态数据类型 是不是可以存储任何类型的值 还有其他什么特点吗  多谢指教
c#

------解决方案--------------------
http://msdn.microsoft.com/zh-cn/library/dd264741.aspx
------解决方案--------------------
很新的东西,个人还没怎么用过,但基本知道一些。目前知道它可以用来定义局部变量,函数参数和成员,实质上应该类似于object,但在编译期允许调用编译期无法探知的成员。目前语法中,它的最主要作用是可以让你方便地调用它上面的方法(如果确认存在的话),弥补object(基类)和var(仍旧是强类型)声明无法做到的。估计.net在背后做一些类似于reflection之类的工作,故性能未知,但基本支持一些动态类型语言的特性。
例如:声明或传入了一个object o;
再函数中如果写:
dynamic d = o;
那么如果这个对象上有一个DoSomething(int a)函数,就可以像这样调用了:
d.DoSomething(1)
而如果将d声明称var或object无法通过编译。