声明隐式类型本地变量

已完成

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 关键字?

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

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

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

概括

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

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