这种类型的逻辑条件检查是不好的做法吗?

本文关键字:检查 类型 种类 条件 | 更新日期: 2023-09-27 18:35:03

>我有一个返回结果类的方法。结果类具有一个布尔属性,用于指示操作是否成功。只有当许多标准为真时,它才能为真。我认为下面的代码会比等效的 if 语句更简洁,但我想检查我正在做的事情是否被视为不良做法。

bool successfullyParsed;
bool conditionA = true;
bool conditionB = true;
successfullyParsed = conditionA && conditionB;
//successfullyParsed should only be true if both criteria are true.

这种类型的逻辑条件检查是不好的做法吗?

不,这不是不好的做法 - 事实上,它可以是使更复杂的条件逻辑更具可读性的好方法,例如(一个微不足道的例子(:

bool isLive = pages.Any(x => x.Live == true && x.Published == true && ...)

在您的示例中,您不能只执行以下操作以使其更具可读性吗?

bool conditionA = true;
bool conditionB = true;
bool successfullyParsed = conditionA && conditionB;

这样,您可以删除successfullyParsed的初始声明。

如果你的方法要返回成功解析的布尔值,那么你可以进一步缩短它:

bool conditionA = true;
bool conditionB = true;
return conditionA && conditionB;

这完全没问题,实际上是解决问题的优雅解决方案。