在代码清晰度方面,是否有比大型 IF 语句更好的方式来编写具有大量 AND 检查的条件?
例如,如果其他字段不满足某些要求,我目前需要在屏幕上强制显示一个字段。目前我有一个运行超过 30 LOC 的 IF 语句,这似乎不对。
if(!(field1 == field2 &&
field3 == field4 &&
field5 == field6 &&
.
.
.
field100 == field101))
{
// Perform operations
}
解决方案是否只是将它们分解成更小的 block 并将结果分配给更少数量的 bool 变量?使代码更具可读性的最佳方法是什么?
谢谢
最佳答案
我会考虑以谓词形式建立规则:
bool FieldIsValid() { // condition }
bool SomethingElseHappened() { // condition }
// etc
然后,我会为自己创建一个包含这些谓词的列表:
IList<Func<bool>> validConditions = new List<Func<bool>> {
FieldIsValid,
SomethingElseHappend,
// etc
};
最后写条件提出条件:
if(validConditions.All(c => c())
{
// Perform operations
}
关于c# - 如何使大型 if 语句更具可读性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3310171/