<p>C# 中模式匹配支持 and、or、not 操作符,可在 switch 表达式或 is 检查中组合条件,如判断整数范围或非空字符串,使代码更简洁清晰。</p>

在 C# 中,模式匹配的逻辑模式可以通过 and、or 和 not 关键字组合多个条件,使判断更灵活简洁。这些逻辑操作符允许你在 switch 表达式、is 模式或 when 子句中构建复杂的匹配逻辑。
当需要同时满足多个条件时,使用 and。例如判断一个对象是整数且值在某个范围内:
if (input is int number and >= 1 and <= 100)
{
Console.WriteLine($"有效数字: {number}");
}
这个例子中,只有当 input 是 int 类型,并且值大于等于 1 且小于等于 100 时才会匹配。
当你希望满足多个条件中的任意一个时,使用 or。比如判断输入是否为特定几个值之一:
if (value is string s and (s == "yes" or s == "y" or s == "true"))
{
Console.WriteLine("用户同意");
}
这里用括号将多个 or 条件分组,确保逻辑清晰。
not 可以用来否定某个模式,常用于排除某些值:
if (obj is not null)
{
Console.WriteLine("对象不为空");
}
这比写 obj != null 更符合模式匹配风格。也可以结合其他模式使用:
if (input is string str and not "")
{
Console.WriteLine($"非空字符串: {str}");
}
switch 表达式也支持逻辑模式组合,适合处理复杂分支:
string result = value switch
{
int i and < 0 => "负整数",
int i and >= 0 => "非负整数",
string s and (s.Length > 0) => "非空字符串",
null => "空值",
_ => "其他类型"
};
每个分支都可以使用 and、or、not 构建精细的判断条件。
基本上就这些。C# 的逻辑模式让条件判断更直观,减少嵌套 if,代码更易读。关键是理解 and 表示“都满足”,or 表示“任一成立”,not 表示“取反”,再合理使用括号控制优先级即可。
以上就是C# 中的模式匹配逻辑模式如何组合条件?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号