gss*_*s11 2 .net c# boolean-logic
我能用更简单,更易读的方式编写以下逻辑吗?以下是我需要的,但它非常凌乱:
if (IsChanged == true)
{
return;
}
else if (Status == "" && IsChanged == false) // Executed when the close (x) button is pressed, as the Status string is not yet set to a real value...
{
CancelClose();
}
else if (IsChanged == false && Status == "saving") // saving logic falls to here...
{
// IsChanged = false;
}
Run Code Online (Sandbox Code Playgroud)
谢谢
Ray*_*nos 20
if (isChanged) return;
switch (Status) {
case "":
CancelClose();
break;
case "saving":
// IsChanged = false;
break;
}
Run Code Online (Sandbox Code Playgroud)
这几乎和它一样整洁.请注意,因为如果isChanged为true,则返回,您可以进一步假设isChanged为false.
Cha*_*ion 12
这有点清洁:
if (IsChanged)
{
}
else if (Status == "saving")
{
}
else if (Status == "")
{
}
else
{
}
Run Code Online (Sandbox Code Playgroud)
我建议你使用一个enum
来表示状态.这将允许您的代码强类型.
public enum Status
{
Closing,
Saving,
Changed,
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用一个好的switch
语句来决定要采取的操作.
switch (_status)
{
case Status.Saving:
break;
case Status.Closing:
break;
case Status.Changed:
break;
default:
break;
}
Run Code Online (Sandbox Code Playgroud)