C#中var和dynamic的区别


我们知道,任何语言的编程都从声明变量开始,然后是变量定义和逻辑实现。因此,在开始任何编程语言的编码之前,了解如何在该语言中声明变量是一个非常重要的因素。

现在,如果我们以C#语言为例,随着语言的改进,变量的声明方式也发生了变化。在C#的早期版本中,所有代码都在编译时进行验证,这使其成为静态类型语言,其中变量使用var关键字声明。C#4.0之后引入了dynamic,其中语法验证或错误检查仅在运行时发生,这也引入了dynamic关键字来声明变量。

以下是var和dynamic之间的一些重要区别。

序号关键点vardynamic
1定义var被称为静态类型变量,这意味着这些变量的数据类型是在编译时推断的,这是根据这些变量初始化的值的类型来确定的。另一方面,dynamic是动态类型变量,这意味着它们的类型是在运行时推断的,而不是在编译时。
2版本C#语言中的var是在C#3.0中引入的。另一方面,dynamic是在C#4.0中引入的。
3类型对于var,变量的类型由编译器在编译时识别。另一方面,对于dynamic,变量的类型由编译器在运行时识别。
4声明对于var,变量在其声明时被初始化,以便编译器根据赋给它的值来了解变量的类型。另一方面,对于dynamic,在声明时不需要进行初始化。
5异常如果使用var定义的变量在声明时未初始化,则会抛出异常。而使用dynamic定义的变量,如果在声明时未初始化,则不会抛出任何异常。

更新于:2020年2月24日

5K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告