2009-10-12 124 views
7

命名布尔属性的Framework Design Guideline是什么?如果没有一个,那么你的建议是什么?命名布尔属性的FDG是什么?

比方说,我有一个User类,我需要一个属性来指定用户是否启用。这是我能想到的选择:

  • 启用
  • 启用
  • 的IsEnabled
  • 禁用
  • 残疾人
  • IsDisabled

此外,如果BL说,用户必须在默认情况下被禁用并且明确启用,如果我更喜欢'启用'变体,co认为System.Boolean的默认值是false

回答

8

框架设计指南(布拉德Abrahms和克齐斯茨托夫·克瓦林纳)说,为使用EnabledIsEnabled(部分3.6.2)。他们说使用肯定性短语(即CanSeek而不是CantSeek),并使用最可读的版本(即创建比IsCreated更具可读性)。

我个人会在你的情况下使用Enabled,默认值为falseUser.Enabled阅读很好,清楚它的含义。

+0

有趣的是,微软的一些代码不遵循这个指导原则,例如 System.Web.Mvc.MvcHandler具有一个静态属性DisableMvcResponseHeader。他们为什么选择使用Disable?是因为它默认启用,默认情况下bool默认为false,因此默认情况下它不会被禁用? – 2009-11-02 18:36:05

2

我会避免“禁用”变体,因为像“disabled = false”这样的双重否定比“enabled = true”更难理解。

我还希望动词“启用”属性的形容词形式,这将是一个更好的方法名称。

将其缩小到“启用”或“isEnabled”,这可能是个人风格&约定的问题。后者强调这是一个笨蛋;前者更简洁。