传递为布尔值的2值变量的变量名?

时间:2011-03-19 17:38:31

标签: c# .net variables boolean

你怎么命名一个布尔变量,但可以有两个有意义的N?

示例:x的值可以是“红色”或“蓝色”。

如果值为true,则将其称为bRed或isRed是有意义的,但不会传达有关“假”案例的任何信息。

你可以 将它作为一个int来实现,或者如果你挑剔的话,作为一个枚举。但这意味着需要更多行代码来声明枚举等。

我想到了“redOrBlue”,但从逻辑上讲,值始终是真的:)

您如何看待“redNotBlue”?有更好的想法吗?

5 个答案:

答案 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”。在你的例子中,两个可能的值是“红色”或“蓝色”,所以这看起来不像是一个布尔变量的好候选者。

作为枚举实现更多的代码行,但可能更具可扩展性和更易维护性,因为未来的开发人员可以清楚地使用代码,因此值得(次要)实现成本。