属性模式通过{PropertyName: pattern}语法检查对象属性值,要求对象非null且属性可读,支持常量、变量及嵌套匹配,如person is {Name: "Alice", Age: >=30}或employee is {Address: {City: "Beijing"}},并可用于switch表达式实现多条件分支,提升代码简洁性与可读性。

在 C# 中,属性模式(Property Pattern)用于在模式匹配中检查对象的属性值是否符合预期。它不关心对象的具体类型,只关注对象是否有指定的属性以及这些属性是否满足特定条件。
属性模式使用 { } 包裹一组属性名与子模式的组合,语法如下:
exampleObject is { PropertyName: pattern }如果 exampleObject 不为 null 且其 PropertyName 的值匹配 pattern,则整个模式匹配成功。
属性模式通过以下方式匹配对象:
例如,判断一个 Person 对象的 Name 是否为 "Alice",Age 是否大于 30:
if (person is { Name: "Alice", Age: >= 30 })属性模式支持嵌套,可以检查复杂对象的深层属性:
if (employee is { Address: { City: "Beijing", ZipCode: "100000" } })这要求 employee 和 employee.Address 都不为 null,且对应属性匹配。
属性模式也常用于 switch 表达式中进行多条件分支判断:
return shape switch基本上就这些。属性模式让 C# 的模式匹配更贴近实际数据结构,写起来简洁又直观。只要对象有对应属性且值匹配,就能成功识别,无需强制类型转换。注意 null 值会直接导致匹配失败,设计时要考虑这一点。
以上就是C# 中的模式匹配属性模式如何匹配对象?的详细内容,更多请关注php中文网其它相关文章!
 
                        
                        每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
 
                Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号