在微软的官方文档中可以看到 default 关键字在 C# 的两种用法
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/default
- 用于 switch 语句或默认值表达式中
- 生成类型的默认值。对于引用类型,将为NULL;对于值类型将为零;对于结构,将为0位模式。这个通常和泛型一起使用。
举个例子:
情景一:当switch的值符合case给出的值时,就会进入到case内部;如果所有的case都不满足,则会走到default语句
switch(color) {
case Color.Red:
console.log("red");
break;
case Color.Green:
console.log("green");
break;
default:
console.log("other");
break;
}
情景二:给定参数化类型 T 的一个变量 t,只有当 T 为引用类型时,语句 t = null 才有效;只有当 T 为数值类型而不是结构体时,语句 t = 0 才能正常使用;对于结构体,此关键字将返回初始化为 零或空 的每个结构成员,具体取决于这些结构是值类型还是引用类型。
public class GenericList<T> {
private class Node {
public Node next;
public T Data;
}
private Node head;
public T GetFirst() {
T temp = default(T);
if(head != null) {
temp = head.data;
}
return temp
}
}