为Mutually Exclusive选项命名布尔变量而不是True / False关系

时间:2018-05-03 16:17:20

标签: naming-conventions

我正在寻找一种方法来命名一个布尔变量,该变量表示两个互斥的选项,这样当变量为True或者为False时,它清楚所选的选项是什么,而不查看实现。

举个例子,假设您的程序选择Chicken xor Fish。目前,在数据库中,变量将命名为“lChickenOrFish”。仅仅看一下,目前还不清楚lChickenOrFish = True是代表Chicken,还是代表Fish。要找到答案,您必须打开代码并搜索它的使用位置,并从那里进行解释。

我知道你可以改为使用两个变量lChicken和lFish,但是这样就可以在同一行中使用lChicken = True和lFish = True,这将是一个错误,因此需要代码来检查

您也可以使用lChicken作为名称,并且lChicken = 0隐含意味着Fish。但是,如果程序员需要知道另一个选项是什么,他们必须打开代码才能查找,这与以前的问题相同。在某些情况下,甚至可能不清楚是否有另一个查找选项,具体取决于布尔值的作用。

那么有没有办法让程序员看起来纯粹是在SQL Server数据库而不需要在代码中查找实际的实现呢?

1 个答案:

答案 0 :(得分:1)

我建议使用枚举或字符串值,而不是使用布尔值。如果没有指定语言,我可以为枚举提供一些伪代码:

enum FoodValue {
  Chicken = 1,
  Fish = 2
}

var dbValue = FoodValue.Chicken;

这样,如果您想稍后添加值,可以轻松更新枚举或直接存储字符串值。