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