C# default 的两种用法

在微软的官方文档中可以看到 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 {
    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
    }
}

你可能感兴趣的:(C#)