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

匿名类型是不是强类型?var 与 dynamic区别?

100分问两个问题

------解决方案--------------------
是强类型的,可以使用 IntelliSense 浏览可用属性


  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
------解决方案--------------------
http://news.ccidnet.com/art/32859/20100610/2083799_1.html
------解决方案--------------------
var是推断类型,在你敲代码或生成时,编译器就要进行强类型检查的。
跟你写实际的变量类型没有区别的,生成的IL代码也是一样的,性能上也无任何影响

dynamic是指动态的静态类型,也就是说它本质上仍然是静态类型,只不过它告诉编译器忽略对它的静态类型检查,它会在运行时才进行类型检查(依靠net4.0中引入的DLR),生成的IL代码与用var是不一样的,对性能略有影响。
它可以应用在基本上所有的C#类型上面,如方法,操作符,索引器,属性,字段,它其实是通过统一的方式来调用方法、属性等操作。
在与DLR的交互和Silverlight中使用较多

http://msdn.microsoft.com/en-us/library/dd264736.aspx