编辑
2025-09-29
C#
00

目录

default 关键字的基本用法
示例:获取不同类型的默认值
default 在泛型编程中的应用
示例:泛型方法中使用 default
default 在可空类型中的应用
示例:获取可空类型的默认值
default 在参数默认值中的应用
示例:方法参数的默认值
default 关键字的注意事项
总结
语言的发展,default 的用法变得更加简洁,使得代码更加清晰易读。理解和掌握 default 关键字的使用,可以帮助开发者编写更加健壮和可维护的代码。

C# 中的 default 关键字是一个非常有用的特性,它用于获取一个类型的默认值。这个关键字在不同的场景下有不同的用途,包括泛型编程、可空类型处理以及提供参数的默认值等。本文将详细介绍 default 关键字的用法和一些实际应用场景。

default 关键字的基本用法

default 关键字可以用来获取任何数据类型的默认值。对于值类型,default 返回的是该类型的默认值,通常是零或者其等价形式(比如 0 对于整数类型,false 对于布尔类型)。对于引用类型,default 返回的是 null

示例:获取不同类型的默认值

C#
int defaultInt = default(int); // 结果为 0 bool defaultBool = default(bool); // 结果为 false string defaultString = default(string); // 结果为 null DateTime defaultDateTime = default(DateTime); // 结果为 DateTime.MinValue

image.png

default 在泛型编程中的应用

在泛型编程中,default 关键字非常有用,因为它可以用来获取泛型参数类型的默认值,而不需要知道具体的类型信息。

示例:泛型方法中使用 default

C#
public static T GetDefaultValue<T>() { return default(T); } static void Main(string[] args) { // 使用方法 int defaultInt = GetDefaultValue<int>(); // 结果为 0 string defaultString = GetDefaultValue<string>(); // 结果为 null Console.WriteLine(defaultInt); Console.WriteLine(defaultString); }

image.png

default 在可空类型中的应用

default 关键字也可以用于可空值类型(Nullable types),这时它会返回一个没有值的可空类型实例。

示例:获取可空类型的默认值

C#
int? defaultNullableInt = default(int?); // 结果为 null

default 在参数默认值中的应用

在定义方法参数时,default 可以用来指定参数的默认值。这在提供方法重载的时候非常有用,可以减少重复代码。

示例:方法参数的默认值

C#
public void LogMessage(string message, LogLevel level = default(LogLevel)) { // 如果调用时没有指定 level 参数,则 level 为 LogLevel 的默认值 }

default 关键字在 C# 7.1+ 的新用法

从 C# 7.1 开始,default 关键字的用法更加简洁。不再需要指定类型,编译器可以根据上下文推断出类型。

示例:C# 7.1 中的 default 表达式

C#
static void Main(string[] args) { int defaultInt = default; // 结果为 0,类型推断为 int string defaultString = default; // 结果为 null,类型推断为 string Console.WriteLine(defaultInt); Console.WriteLine(defaultString); }

image.png

default 关键字的注意事项

  • 使用 default 获取引用类型的默认值时,结果总是 null
  • 对于结构体(值类型),default 会返回一个所有字段都设置为默认值的新实例。
  • 在泛型中,如果不确定 T 是值类型还是引用类型,default(T) 保证了类型安全,避免了空引用异常或未初始化的变量问题。

总结

default 关键字在 C# 中是一个非常有用的工具,它提供了一种类型安全的方法来获取任何类型的默认值。在泛型编程、方法参数默认值设置以及可空类型处理等方面,default 都发挥着重要作用。随着 C# 语言的发展,default 的用法变得更加简洁,使得代码更加清晰易读。理解和掌握 default 关键字的使用,可以帮助开发者编写更加健壮和可维护的代码。

本文作者:技术老小子

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!