登录
首页 >  文章 >  常见问题

C#枚举匹配常量模式解析

时间:2026-05-29 21:53:22 252浏览 收藏

本文深入解析了C#中利用常量模式高效匹配枚举值的核心技巧,涵盖`is`表达式中的精准判断(如`color is Color.Red`)和`switch`表达式中清晰直观的多分支处理(如`Color.Red => "红色"`),强调枚举成员作为编译期常量的天然适配性、对自定义整数值的无缝支持,以及禁止使用变量参与比较的关键限制,帮助开发者写出更简洁、安全且可读性强的枚举驱动逻辑代码。

C# 中的模式匹配常量模式如何匹配枚举?

在 C# 中,常量模式用于将表达式的值与一个固定的常量进行比较。当你使用常量模式匹配枚举时,可以直接用枚举的成员作为常量来参与匹配。

常量模式匹配枚举的基本语法

常量模式的写法是在 switch 表达式或 is 表达式中直接使用枚举值。C# 编译器会判断表达式的值是否等于指定的枚举常量。

例如:

enum Color
{
    Red,
    Green,
    Blue
}
<p>Color color = Color.Red;</p><p>if (color is Color.Red)
{
Console.WriteLine("颜色是红色");
}
</p>

这段代码中,color is Color.Red 就是常量模式的应用,它检查 color 是否等于 Color.Red

在 switch 表达式中使用常量模式

switch 表达式也支持常量模式,可以清晰地处理不同枚举值的情况。

string result = color switch
{
    Color.Red   => "红色",
    Color.Green => "绿色",
    Color.Blue  => "蓝色",
    _           => "未知颜色"
};

每个分支都使用了常量模式,将 color 的值与具体的枚举成员比较。下划线 _ 是弃元模式,表示默认情况。

注意事项

常量模式要求右侧是一个编译时确定的常量。枚举成员天然满足这个条件,因此可以直接使用。

需要留意的是:
  • 如果枚举类型有自定义的整数值(如 Red = 10),常量模式依然按值比较,不受底层整数影响。
  • 不能在常量模式中使用变量,比如 color is someColor(someColor 是变量)就不合法,这属于声明模式或类型检查的范畴。

基本上就这些。常量模式匹配枚举简单直接,适合做基于枚举值的逻辑分支。

今天关于《C#枚举匹配常量模式解析》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>