首页 > 解决方案 > 声明为 var 的变量如何在 c# 中存储任何数据类型

问题描述

我正在研究我的项目的代码,我是通过'var'关键字来的。我已经知道 var 关键字可以存储任何数据类型。我想了解这是如何发生的。而且我们已经有 object 关键字来做到这一点。那为什么我们也有 var。我们可以使用 object 关键字来实现这一点,为什么要使用 var 关键字。

标签: c#

解决方案


var不是一种类型 - 它是一种快捷方式。实际变量的类型在编译时确定。相比:

var number = 42;
number = "42"; // Compilation error! You can't assign a string value to an integer variable

object number = 42;
number = "42"; // No problem - someNumber used to be an instance of the type (boxed) Int32, 
               // and now is of type string. The type of the variable is still just object.

在第一种情况下,变量声明等价于说int number = 42;。类型是根据正确值的类型确定的,在这种情况下,是整数文字。当您尝试以某种方式(例如number + 10)使用该变量时,该变量的行为与任何其他整数变量一样。

在第二种情况下,变量的类型是object。它可以随时存储 C# 中可用的任何值。即使变量包含一个整数类型的值,它仍然表现得像一个普通对象(例如,是一个编译时错误,因为在and之间number + 10没有+定义运算符)。objectint


推荐阅读