C#中var和dynamic之间的区别

我们知道,任何语言的编程都以声明变量开始,然后对其进行定义和逻辑实现。因此,最重要的因素之一就是知道在开始用任何编程语言声明变量之前如何对其进行编码。

现在,如果我们使用C#语言的实例,则变量的声明会随着语言的发展而变化。与以前的C#版本一样,所有编写的代码都在编译时进行了验证,这使其成为静态类型的语言,其中使用var关键字声明变量。在C#4.0之后,引入了dynamic,其中仅在运行时才进行语法验证或错误检查,并且还引入了dynamic关键字来声明变量。

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

序号vardynamic
1定义var是称为静态类型的变量,这意味着这些变量的数据类型是在编译时推断出来的,这是基于初始化这些变量的值的类型来完成的。另一方面,动态类型是动态类型的变量,它明确暗示它们的类型是在运行时而不是编译时推断的。
2版本C#3.0中引入了C Sharp语言中的var另一方面,动态性将在C#4.0中稍后介绍。
3类型如果是var,则变量类型由编译器在编译时识别。另一方面,在动态情况下,变量的类型由编译器本身在运行时识别。
4声明如果是var,则在声明变量时对其进行初始化,以便编译器根据分配给它的值来了解变量的类型。另一方面,在动态情况下,在声明时不必强制进行初始化。
5异常如果在声明时未进行初始化,则带有var的变量define会引发异常。虽然带有动态的变量define如果在声明时未初始化,则不会抛出任何异常