微软的官方文档:
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/default
可以看到default关键字在C#中有两种用法
switch 语句:指定默认标签。
默认值表达式:生成类型的默认值。 对于引用类型,将为 NULL;对于值类型,将为零;对于结构,将为 0 位模式。
举例说明:
(一)switch 语句用法:当switch的值符合case列出的值时,流程进入相应case内部,当没有符合的case条件时,进入default内部
using System;
public class Example
{
public static void Main()
{
int caseSwitch = 1;
switch (caseSwitch)
{
case 1:
Console.WriteLine("Case 1");
break;
case 2:
Console.WriteLine("Case 2");
break;
default:
Console.WriteLine("Default case");
break;
}
}
}
(二)默认值表达式:已知参数化类型T的变量 t,仅当T为引用类型时,语句 t = null才有效。 赋值 t = 0 仅对数值类型有效,对结构无效。解决方案是使用默认值表达式。
1.该表达式对引用类型(类类型和接口类型)返回 null 。
2.对数值类型返回零。
3.对于用户定义的结构,返回初始化为零位模式的结构,该结构根据成员是值还是引用类型,为每个成员生成 0 或 null 。
对于可为 NULL 的值类型, default 返回像任何结构一样初始化的 System.Nullable<T>
var s = default(string);
var d = default(dynamic);
var i = default(int);