Tim*_*oyd 14
动态类型是在.Net 4.0中引入的.
动态类型不是仅语言特性(即编译器纯粹支持).它依赖于DLR,这是一个需要库支持的.Net 4.0特性.
您不能使用动态和目标.Net 3.5框架.
dec*_*one 11
使用时Visual Studio 2010
,默认为C# 4.0
.
您不能使用C# 3.0
与Visual Studio 2010
.
即使你的目标.Net Framework 3.5
,它只会使用Framework 3.5
而不是C# 3.0
.
现在,因为它默认为C# 4.0
,你可以使用dynamic
.但为了工作,你必须参考Microsoft.CSharp.dll
.该汇编编译为v 4.0
.你不能在下面使用它v 3.5
.
dynamic
DLR (Dynamic Language Runtime)
以前的框架版本不存在的需求.
这就是为什么当你尝试dynamic
在Framework 3.5
项目中使用时,它会吓坏.
所以,总结一下,使用dynamic
,使用Framework 4.0
.
Vin*_*ayC 10
动态关键字是作为C#4.0语言的一部分引入的 - 编译器随VS 2010一起提供.它是一种语言特性,不需要运行时支持(AFAIK)因此一旦符合C#4.0编译器,就不应该对早期版本的运行时有任何问题.在VS 2010中更改目标框架不切换编译器(它保持在4.0) - 只有在使用功能,针对新库或运行时,我们会收到编译错误.例如,在VS 2008中,你可以使用lambda表达式或var关键字为目标运行时2.0,但扩展方法是不可用,因为扩展属性是3.5组件的一部分.
编辑:上面的错误 - 动态关键字需要Framework 4.0.当目标fx改为3.5时,我甚至无法在VS2010中编译.我相信OP可能以后没有在代码中使用动态var,因此编译器优化会删除它,使OP相信它的工作.
归档时间: |
|
查看次数: |
16697 次 |
最近记录: |