您的位置:首页 > 编程语言 > ASP

.NET中dynamic和var的区别有哪些

2015-12-19 16:46 369 查看

1、var编译时替换为实际类型,而dynamic实际是object类型

一旦被编译,编译期会自动匹配var 变量的实际类型,并用实际类型来替换该变量的申明,这看上去就好像我们在编码的时候是用实际类型进行申明的。而dynamic被编译后,实际是一个object类型,只不过编译器会对dynamic类型进行特殊处理,让它在编译期间不进行任何的类型检查,而是将类型检查放到了运行期。

 

2、智能感知

以var声明的变量,支持“智能感知”,因为visual studion能推断出var类型的实际类型,而以dynamic声明的变量却不支持“智能感知”,因为编译器对其运行期的类型一无所知。对dynamic变量使用“智能感知”,会提示“此操作将在运行时解析”。

 

3、var只能用于局部变量的定义,你不能把类的属性定义成 var,也不能把方法的返回值类型或者是参 数类型定义成var。dynamic就没有这些局限了。

 

4、表达式不能转型为var,但能转型为dynamic。

 

5、必须显式初始化用var声明的变量,但无需初始化用dynam声明的变量。

参考资料: .NET中dynamic和var的区别有哪些   http://www.studyofnet.com/news/1116.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  asp.net