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

C#枚举常量模式匹配教程

时间:2026-03-26 15:48:34 446浏览 收藏

本文深入解析了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学习网公众号了解相关技术文章。

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