这是我正在谈论的示例代码:
bool DefinedProperty
{
get
{
#if DEFINE_SOMETHING
return true;
#else
return false;
#endif
}
}
...
if (!DefinedProperty)
someObject.someMethod();
...
bool someBool = DefinedProperty && SomeOtherMethod() == SomeClass.SomeProperty;
我认为它的可读性不是很高,因为为了理解它,我必须回到DefinedProperty。在我看来,更直接的版本会更好:
#if DEFINE_SOMETHING
someObject.someMethod();
#endif
...
#if DEFINE_SOMETHING
bool someBool = DefinedProperty && SomeOtherMethod() == SomeClass.SomeProperty;
#else
bool someBool = false;
#endif
然而,我的一位同事认为第一个版本看起来更简单,使用的定义越少越好。
哪个选项更具可读性?