C# 面试题 目录

C# 中模式匹配 (Pattern Matching) 的用法

推荐答案

-- -------------------- ---- -------
-- ------- ------
------ ------ -------------------------- ------
-
    ------ -------
    -
        ---- ------ --
            ------ -------- ---- ------ ------------
        ---- --------- - ---- ------- -- ---------
            ------ -------- ---- ---- -----------
        ---- --------- --
            ------ ----------- ---- ----- --------- --- ------ ------------
        ---- -----
            ------ ------ -- ------
        --------
            ------ -------- -------
    -
-

本题详细解读

模式匹配的基本概念

模式匹配是 C# 7.0 引入的一项功能,允许你在 switch 语句或 is 表达式中根据对象的类型或属性进行条件分支。它简化了类型检查和类型转换的代码,使代码更加简洁和易读。

switch 语句中的模式匹配

switch 语句中,你可以使用模式匹配来检查对象的类型,并根据类型执行相应的代码块。例如:

在这个例子中,Circle c 是一个类型模式,它检查 shape 是否是 Circle 类型,如果是,则将 shape 转换为 Circle 类型的变量 c,并执行相应的代码块。

when 子句

when 子句允许你在模式匹配中添加额外的条件。例如:

在这个例子中,when r.Width == r.Height 是一个额外的条件,只有当 Rectangle 的宽度和高度相等时,才会执行这个代码块。

null 检查

模式匹配还可以用于检查对象是否为 null。例如:

默认情况

如果没有任何模式匹配成功,可以使用 default 分支来处理未知的情况。例如:

总结

模式匹配是 C# 中非常强大的功能,它使得类型检查和条件分支更加简洁和直观。通过使用模式匹配,你可以减少代码中的冗余,并提高代码的可读性和可维护性。

纠错
反馈