关键字 `default` 在 C# 中用于获取一个值类型的默认值。
### 含义与作用:
- **默认值**:`default` 关键字后面跟一个类型,用来获取该类型的默认值。
- **隐式值**:对于值类型,这通常是 `0`(或等效的 `false`);对于引用类型,它是 `null`。
### 使用案例:
```csharp
int zero = default(int); // zero 的值是 0
bool falseValue = default(bool); // falseValue 的值是 false
string nullString = default(string); // nullString 的值是 null
Console.WriteLine(zero); // 输出: 0
Console.WriteLine(falseValue); // 输出: False
Console.WriteLine(nullString); // 输出: (null)
// 在 switch 语句中使用 default
switch (someVariable)
{
case 1:
// ...
break;
default:
// 执行一些默认操作
break;
}
```
### 分析:
- 在第一个例子中,我们使用 `default` 关键字来初始化 `zero`、`falseValue` 和 `nullString` 变量,分别得到 `int`、`bool` 和 `string` 类型的默认值。
- 在 `switch` 语句中,`default` 用作一个 `case` 标签,表示当没有其他 `case` 匹配时执行的代码块。
从 C# 7.1 开始,`default` 关键字也可以用于局部变量的类型推断,例如:
```csharp
void DoWork()
{
// C# 7.1 及更高版本
int number = default; // number 被推断为 int 并初始化为其默认值 0
Console.WriteLine(number); // 输出: 0
}
```
在这个例子中,`default` 关键字被用来声明一个局部变量 `number`,并且编译器根据赋值推断出其类型为 `int`。这种用法简化了代码,特别是在初始化变量为其默认值时。