naming-conventions - 为互斥选项而不是真/假关系命名布尔变量
问题描述
我正在寻找一种方法来命名一个表示两个互斥选项的布尔变量,以便在变量为 True 或为 False 时清楚选择的选项是什么,而无需查看实现。
例如,假设您的程序在 Chicken xor Fish 之间进行选择。目前,在数据库中,该变量将被命名为“lChickenOrFish”。单看这一点,尚不清楚 lChickenOrFish = True 是代表鸡还是代表鱼。要找出答案,您必须打开代码并搜索它的使用位置,然后从那里进行解释。
我知道您可以改为使用两个变量 lChicken 和 lFish,但这会导致 lChicken = True 和 lFish = True 在同一行中,这将是一个错误,因此需要代码来检查。
您也可以只使用 lChicken 作为名称,并让 lChicken = 0 隐含表示 Fish。但是,如果程序员需要知道另一个选项是什么,他们必须打开代码进行查找,这与之前的问题相同。在某些情况下,甚至可能不清楚是否还有其他选项可供查找,具体取决于布尔值正在做什么。
那么有没有办法让纯粹看 SQL Server 数据库而不在代码中查找实际实现的程序员清楚这一点?
解决方案
我建议使用枚举或字符串值,而不是使用布尔值。在没有指定语言的情况下,我可以为枚举提供一些伪代码:
enum FoodValue {
Chicken = 1,
Fish = 2
}
var dbValue = FoodValue.Chicken;
这样,如果您想稍后添加值,很容易更新枚举或直接存储字符串值。
推荐阅读
- python - Python 3 中的可扩展板
- jquery - 如何修复“客户”显示对象对象
- string - Mips 组件拨动盒
- c# - 禁用特殊链接的输出缓存
- amazon-web-services - 文件格式的 AWS 转录问题
- javascript - 为输入的输入字段值过滤下拉值
- java - collectd,java插件:找不到API类org.collectd.api.Collectd
- c++ - C/C++ 打印自定义 EOL
- android - 如何从 ViewModel 正确传递事件?
- c# - Microsoft Visual Studio 2017 安装程序项目启动条件检查不适用于 .net 4.7.1