声明隐式类型本地变量

已完成

C# 编译器在后台工作,在编写代码时为你提供帮助。 它可以按变量的初始化值推断变量的数据类型。 在本单元中,你将了解此功能,称为隐式类型局部变量。

什么是隐式类型的局部变量?

隐式类型的局部变量是通过使用 var 关键字并进行变量初始化来创建的。 例如:

var message = "Hello world!";

在此示例中,使用 var 关键字而不是 string 关键字创建了一个字符串变量。

关键字 var 告知 C# 编译器,该数据类型由赋值 隐含 。 隐含类型后,该变量的行为与实际数据类型用于声明它的行为相同。 当类型很长或类型在上下文中明显可见时,var 关键字用于减少击键次数。

在示例中:

var message = "Hello world!";

由于变量 message 立即设置为 string"Hello World!",因此 C# 编译器会了解意向并将每个实例 message 视为类型的 string实例。

事实上,变量 message 的类型化为一个 string 且永远无法更改。 例如,考虑以下代码:

var message = "Hello World!";
message = 10.703m;

如果运行此代码,将看到以下错误消息。

(2,11): error CS0029: Cannot implicitly convert type 'decimal' to 'string'

注释

其他编程语言以不同的方式使用 var 关键字。 在 C# 中,无论使用实际数据类型名称还是允许编译器暗示数据类型,变量都由编译器分配类型。 换句话说,该类型在声明时被锁定,因此永远无法保存不同数据类型的值。

使用var关键字的变量必须被初始化

请务必了解关键字 var 取决于用于初始化变量的值。 如果尝试使用 var 关键字而不初始化变量,则尝试编译代码时会收到错误。

var message;

如果尝试运行此代码(编译时),将看到以下输出:

(1,5): error CS0818: Implicitly-typed variables must be initialized

为什么使用 var 关键字?

C# 社区广泛采用该 var 关键字。 如果查看书籍或联机代码示例,则可能会看到 var 使用的关键字而不是实际数据类型名称,因此了解其用法非常重要。

关键字 var 在 C# 中具有重要的用法。 很多时候,变量的类型从初始化中显而易见。 在这些情况下,使用 var 关键字更简单。 规划应用程序的代码时,关键字 var 也很有用。 开始为任务开发代码时,可能无法立即知道要使用的数据类型。 使用 var 有助于更动态地开发解决方案。

开始时,建议在声明变量时继续使用实际的数据类型名称,直到你更熟悉代码。 声明变量时使用数据类型有助于编写代码时有目的。

回顾

以下内容是到目前为止你对 var 关键字的了解:

  • 关键字 var 告知编译器根据变量初始化的值推断变量的数据类型。
  • 阅读其他人的代码时,可能会看到 var 关键字;但是,应尽可能使用数据类型。