微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在测试范围时,是否有更多的 C# 9 / .NET 5 惯用方式来表达 If/Else? 模式匹配或更新的 C# 功能

如何解决在测试范围时,是否有更多的 C# 9 / .NET 5 惯用方式来表达 If/Else? 模式匹配或更新的 C# 功能

今天不得不为一个非常接近此的项目编写一些代码

#

在测试范围时,是否有更多的 C# 9 / .NET 5 惯用方式来表达 If/Else? Resharper 已经告诉我缩短/删除一些 else 语句。 是否有更像人类可读版本的“网格”?表达相同意图的更好方法,但让它读起来像 6 个简单的条件。谢谢。

解决方法

在 .NET 5 中,您应该能够像在这个例子中那样使用模式匹配:

static string CreateColorFromPercentage(double percentage,bool isPrimaryGroup) {
    return (percentage,isPrimaryGroup) switch {
        (>= 97.0,true)  => "#000000",(> 80.0,true)  => "#FF0000",(_,true)  => "#FFA500",(>= 97.5,false) => "#000000",false) => "#FFA500",false) => "#008000"
    };
}
,

您可以使用嵌套的 switch expressions

SizeInput

不会说这更“惯用”,但它可以更具可读性。

,

模式匹配和条件运算符确实可以使该页面的长代码段更具可读性:

private static string CreateColorFromPercentage(double percentage,bool isPrimaryGroup) => isPrimaryGroup 
    ? percentage switch { >= 97.0 => "#000000",> 80.0 => "#FF0000",_ => "##FFA500" }
    : percentage switch { >= 97.5 => "#000000",> 80.0 => "#FFA500",_ => "##008000" };

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。