C#中的object,var和dynamic关键字有什么区别?
Object
它是所有类型的基础,也是语言最古老的特征之一。这意味着可以将任何类型的值存储在对象类型变量中。但是,检索变量的值以使用原始类型时,必须进行类型转换(拆箱)才能获得原始类型。
Object o;o = 10;
因此,这是拆箱的额外开销。因此,仅当我们没有关于数据类型的更多信息时,才应首选对象类型。
编译器具有对象类型的标题信息。
Var
这是在.net 3.5框架中引入的。它也可以具有任何类型的值,例如object,但是必须在声明变量时初始化值。该关键字最适合C#中的linq查询。
Var a = 10;Var b = "string value";
Var c = new Product(); // 产品类型的对象
Var d;//错误,因为在声明变量d时未分配值
d = 10;
dynamic
dynamic关键字是在.net 4.0框架中引入的。它也可以用来存储任何类型的值,例如object和var,但是与使用变量不同,不需要取消装箱对象。
Dynamic d1 = 10;Dynamic d2;
D2=new Product();
Dynamic d3="string value";
编译器没有动态类型的信息,但会在运行时评估值。
以上是 C#中的object,var和dynamic关键字有什么区别? 的全部内容, 来源链接: utcz.com/z/330755.html