C#面试题更新 2026-08-03

在C#中,默认字面量(default literal)指的是什么?请给出它的使用方式及示例。

考察说明

考察对C# 7.1引入的默认字面量特性的理解及应用能力。

回答思路

  1. 【回答框架 1】默认字面量是C# 7.1引入的简化写法,用于表示类型的默认值。在之前的版本中,需要显式写成default(T),而默认字面量允许直接使用default关键字,编译器会根据上下文推断类型。
  2. 【回答框架 2】使用场景包括:初始化变量或字段,如int x = default; 或者string s = default;;作为可选参数的默认值,但需要注意可选参数必须是编译期常量,因此默认字面量不能用于可选参数,因为default(T)不一定在编译期可确定。
  3. 【回答框架 3】在泛型方法或类中使用时,default关键字可以表示类型参数T的默认值,但若在泛型上下文中使用默认字面量,需要明确类型,例如default(T),而在具体类型中可以直接使用default。
  4. 【回答框架 4】默认字面量还常用于switch表达式、模式匹配等场景,比如在switch表达式中返回默认情况。注意,在C# 7.1之前,default只能用于类型上下文,之后才能作为字面量使用。
  5. 【关键点 1】默认字面量是C# 7.1引入的语法糖,等效于default(T),但需类型推断。
  6. 【关键点 2】默认值规则:引用类型为null,值类型为零值(如0、false等),Nullable<T>为null。
  7. 【关键点 3】默认字面量不能作为可选参数的默认值,因为需要编译期常量。
  8. 【关键点 4】在泛型中应使用default(T)以明确类型。
  9. 【易错点 1】在需要明确类型的上下文中使用默认字面量可能导致编译错误,如var x = default; 无法推断。
  10. 【易错点 2】不要混淆default字面量与default(T)在泛型中的区别。