弃元模式使用下划线_忽略不需的值,避免未使用变量警告。在switch表达式中可基于类型匹配返回结果,如int _=>“整数”,string _=>“字符串”,_=>“其他”;在is表达式中判断类型无需赋值,如if(obj is int _);与变量模式不同,_不创建实际变量,多个_不冲突;同样适用于switch语句的case分支,提升代码清晰度。

在 C# 中,模式匹配中的弃元模式(discard pattern)使用下划线 _ 来忽略不需要的值。它告诉编译器你有意不使用某个值,避免产生未使用变量的警告。
弃元模式的基本用法
弃元模式常用于 switch 表达式、switch 语句或 is 模式的条件判断中,当你只关心类型或结构而不关心具体值时:
在 switch 表达式 中忽略具体值:
string result = value switch
{
int _ => “这是一个整数”,
string _ => “这是一个字符串”,
_ => “其他类型”
};
这里的 _ 在每个分支中表示忽略匹配到的具体值,只根据类型进行判断。最后一个 _ 是“通配符”,匹配所有未处理的情况。
在 is 表达式 中检查类型但不使用变量:
if (obj is int _)
{
Console.WriteLine(“obj 是 int 类型”);
}
这里只需要判断 obj 是否为 int 类型,不需要将其赋值给变量,用 _ 避免声明无用的临时变量。
与变量模式的区别
如果你写 int temp,就会创建一个名为 temp 的变量,即使不用也会占用作用域。而使用 int _ 不会创建实际可用的变量,只是完成类型匹配。
多个 _ 在同一个作用域中不会冲突,因为它们都被视为“丢弃”。
在 switch 语句中的应用
同样适用于传统的 switch 语句:
switch (input)
{
case string _: Console.WriteLine(“字符串”); break;
case double _: Console.WriteLine(“浮点数”); break;
default: Console.WriteLine(“其他”); break;
}
每个 _ 都表示你接受该类型,但不关心具体值。
基本上就这些。使用 _ 能让代码更清晰,表明你有意忽略某些值,同时保持模式匹配的简洁性。
以上就是C# 中的模式匹配弃元模式如何忽略值?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1439977.html
微信扫一扫
支付宝扫一扫