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语句一起使用
基础教程推荐
猜你喜欢
- C# 从 List<List<int>> 中删除重 2022-01-01
- 禁止输入少量字符,例如'<'、'&a 2022-01-01
- Moq It.Is<>不匹配 2022-01-01
- WPF 模态进度窗口 2022-01-01
- 当值可以是对象或空数组时反序列化 JSON 2022-01-01
- Azure Functions:CosmosDBTrigger 未在 Visual Studio 中触发 2022-01-01
- 我应该在后面的代码中直接使用 Linq To SQL 还是使 2022-01-01
- .NET SerialPort DataReceived 事件未触发 2022-01-01
- 如何使用 .Net 检查 Active Directory 服务器是否已启动并正在运行? 2022-01-01
- 如果有人提交恶意软件Nuget包怎么办? 2022-01-01
