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

C#枚举匹配:模式匹配常量详解

时间:2026-01-31 17:14:31 333浏览 收藏

本篇文章给大家分享《C# 枚举匹配:模式匹配常量用法解析》,覆盖了文章的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

常量模式用于将表达式与固定常量比较,C#中可直接用枚举成员进行匹配。如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学习网公众号!

前往漫画官网入口并下载 ➜
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>