你怎么命名一个布尔变量,但可以有两个有意义的N?
值示例:x的值可以是“红色”或“蓝色”。
如果值为true,则将其称为bRed或isRed是有意义的,但不会传达有关“假”案例的任何信息。
你可以 将它作为一个int来实现,或者如果你挑剔的话,作为一个枚举。但这意味着需要更多行代码来声明枚举等。
我想到了“redOrBlue”,但从逻辑上讲,值始终是真的:)
您如何看待“redNotBlue”?有更好的想法吗?
答案 0 :(得分:7)
在这种情况下你可能应该使用枚举。
enum EntityColors
{
blue,
red
};
答案 1 :(得分:3)
在这种情况下使用enum
,它是最具表现力的:
public enum ColorValue { Red, Blue };
答案 2 :(得分:2)
更多代码行还没有伤害开发人员。一个输入不好的命名变量。去使用枚举类型并仅在有意义的地方使用布尔值 - 即是/否,真/假逻辑。
答案 3 :(得分:1)
也许你想解决另一个问题。
例如,您有一个打印功能
void print(string text, bool red) {...}
红色是重要的,所有其他人都是蓝色的。为什么不将变量名称更改为更有意义的名称
void print(string text, bool isImportant) {...}
这会使API更清晰,只要您将重要颜色更改为橙色,就不必更改变量名称。
答案 4 :(得分:0)
这当然应该被定义为枚举。
你的问题是“你怎么命名一个布尔变量,但可以从N中得到2个有意义的值?例如:x可以有值”红色“或”蓝色“。
布尔值可以有两个值,“true”或“false”。在你的例子中,两个可能的值是“红色”或“蓝色”,所以这看起来不像是一个布尔变量的好候选者。
作为枚举实现更多的代码行,但可能更具可扩展性和更易维护性,因为未来的开发人员可以清楚地使用代码,因此值得(次要)实现成本。