我正在尝试为布尔变量提出一个很好的命名约定,表明某些内容是“允许的”。
如, WarningAllowed 或 WarningEnabled (表示我们已启用该选项以发出警告)。
CodeComplete 对布尔值有一些建议(Has<> Is<>),但这些不适用。
我的想法:
答案 0 :(得分:2)
我已经看到在此上下文中使用的前缀Can
。例如:
StackPanel.CanHorizontallyScroll
ReceiveActivity.CanCreateInstance
CanExecuteToolEventArgs.CanExecute
我非常喜欢这个命名约定,因为它抽象了值的原因,无论是 true 还是 false :API的用户通常没有了解命令是否符合条件,因为它被禁止或者因为无法执行。结果是一样的:一个灰色的菜单项/按钮/无论如何。
这也允许在未来版本中更改原因(例如,如果Can*
属性仅在最初实际上不可能的情况下返回 false ,但在将来的版本中,访问权限模型添加,从那时起,所述Can*
属性的值也取决于当前的访问权限。)