C# 中的模式匹配常量模式如何匹配特定值?

来源:这里教程网 时间:2026-02-21 17:26:49 作者:

在 C# 中,常量模式用于判断表达式的值是否等于某个特定的常量。这种模式通常出现在 switch 表达式is 表达式 中,用来检查变量是否匹配指定的常量值。

基本语法与用法

常量模式的语法很简单:直接写一个常量值,比如数字、字符串、布尔值或枚举值。运行时会将目标表达式的值与此常量进行比较。

例如: 使用 is 表达式进行类型外的值判断:
if (input is 42)
{
    Console.WriteLine("输入的是 42");
}
在 switch 表达式中匹配字符串常量:
string result = value switch
{
    "red" => "红色",
    "green" => "绿色",
    "blue" => "蓝色",
    _ => "未知颜色"
};

支持的数据类型

常量模式可以匹配多种类型的常量值:

整数(如 0、1、-1、42) 浮点数(如 3.14) 字符串(如 "yes"、"no") 布尔值(true、false) 枚举成员(如 Color.Red) null —— 特别常见,用于判断是否为空引用 示例:判断是否为 null
if (obj is null)
{
    Console.WriteLine("对象为空");
}

实际应用场景

常量模式在简化条件逻辑方面非常实用。

处理配置字符串或命令输入:
string action = command switch
{
    "start" => StartService(),
    "stop" => StopService(),
    "restart" => RestartService(),
    _ => "无效指令"
};
结合 if 和 is 判断特殊状态值:
if (status is HttpStatusCode.NotFound)
{
    // 处理 404
}

基本上就这些。常量模式不复杂,但能让你的代码更清晰,尤其是在做值判断时替代冗长的 == 比较。注意它只适用于可确定的常量,不能是变量或表达式。匹配过程基于类型的相等性规则,对于引用类型要小心字符串以外的引用比较问题。基本上就这些。

相关推荐