声明隐式类型本地变量
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
关键字。但是,你应尽可能使用数据类型。