Using one else with multiple if statements in C#(在C#中将另一个语句与多个IF语句一起使用)
本文介绍了在C#中将另一个语句与多个IF语句一起使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有没有办法在C#中快速检查以下逻辑?
if (a)
{
}
if (b)
{
}
if (c)
{
}
else //none of the above, execute if all above conditions are false
{
/* do something only if !a && !b && !c */
}
这与使用if-else
的不同之处在于,a
、b
和c
可以同时为真,因此我不能以这种方式堆叠它们。
当a
、b
和c
均为false而不写if (!a && !b && !c)
时,我想运行Else挡路。这是因为当if条件变得更加复杂时,代码可能会变得相当混乱。它需要重写大量代码。
这可能吗?
推荐答案
首先,no,else
块仅与其正上方的if
子句相关,因此您需要使用其他方法。
此选项不是特别干净,但我会这样做:
bool noneAreTrue = true;
if(a)
{
noneAreTrue = false;
}
if(b)
{
noneAreTrue = false;
}
if(c)
{
noneAreTrue = false;
}
if(noneAreTrue)
{
//execute if all above conditions are false
}
另外,如果您的条件真的很大,我推荐Robert C.Martin的Clean Code一书中的规则G28(封装条件)。
非常冗长,但在某些情况下可以更容易阅读:
public void YourMethod()
{
if(SomeComplexLogic())
{
}
if(SomeMoreLogic())
{
}
if(EvenMoreComplexLogic())
{
}
if(NoComplexLogicApply())
{
}
}
private bool SomeComplexLogic(){
return stuff;
}
private bool EvenMoreComplexLogic(){
return moreStuff;
}
private bool EvenMoreComplexLogic(){
return evenMoreStuff;
}
private bool NoComplexLogicApply(){
return SomeComplexLogic() && EvenMoreComplexLogic() && EvenMoreComplexLogic();
}
这篇关于在C#中将另一个语句与多个IF语句一起使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:在C#中将另一个语句与多个IF语句一起使用


猜你喜欢
- 良好实践:如何重用 .csproj 和 .sln 文件来为 CI 创建 2022-01-01
- MoreLinq maxBy vs LINQ max + where 2022-01-01
- Web Api 中的 Swagger .netcore 3.1,使用 swagger UI 设置日期时间格式 2022-01-01
- 输入按键事件处理程序 2022-01-01
- 如何用自己压缩一个 IEnumerable 2022-01-01
- C#MongoDB使用Builders查找派生对象 2022-09-04
- 在哪里可以找到使用中的C#/XML文档注释的好例子? 2022-01-01
- 带有服务/守护程序应用程序的 Microsoft Graph CSharp SDK 和 OneDrive for Business - 配额方面返回 null 2022-01-01
- WebMatrix WebSecurity PasswordSalt 2022-01-01
- C# 中多线程网络服务器的模式 2022-01-01