WEB开发网
开发学院软件开发C语言 C#4.0中dynamic与var的区别 阅读

C#4.0中dynamic与var的区别

 2010-09-30 22:45:51 来源:WEB开发网   
核心提示:var表示“变量的类型是在编译时决定的”,但是dynamic表示“变量的类型是在运行时决定的”,C#4.0中dynamic与var的区别,因此,dynamic与var具有截然不同的含义,检测到类型不兼容,照样会抛出异常,var让你在初始化变量时少输入一些字,编译器会根据右

var表示“变量的类型是在编译时决定的”,但是dynamic表示“变量的类型是在运行时决定的”。因此,dynamic与var具有截然不同的含义。

var让你在初始化变量时少输入一些字,编译器会根据右值来推断出变量的类型。dynamic更厉害,它告诉编译器,根本就别理究竟是啥类型,运行时再推断不迟。

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

dynamic类型并没有跳过类型校验,只是延迟到了运行时。如果在运行时,检测到类型不兼容,照样会抛出异常。

你可能在以下情况下使用dynamic:

1.COM对象

2.动态语言(如IronPython,IronRuby等)对象

3.反射对象

4.C# 4.0中动态创建的对象

Tags:dynamic var 区别

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接