什么是命名布尔属性的FDG?

时间:2009-10-12 18:25:38

标签: c# .net design-guidelines

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

假设我有一个User类,我需要一个指定用户是否启用的属性。这些是我能想到的选择:

  • 启用
  • 启用
  • 的IsEnabled
  • 禁用
  • 禁用
  • IsDisabled

另外,如果BL表示默认情况下必须禁用该用户并明确启用,那么我是否应该选择“启用”变体,并考虑System.Boolean的默认值为false

2 个答案:

答案 0 :(得分:8)

框架设计指南(Brad Abrahms和Krzysztof Cwalina)说使用EnabledIsEnabled3.6.2部分)。他们说要使用肯定的短语(即CanSeek而不是CantSeek),并使用最易读的版本(即.Created比IsCreated更具可读性)。

我个人会在您的情况下使用Enabled,默认值为falseUser.Enabled读得很好,并清楚其含义是什么。

答案 1 :(得分:2)

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

我也更喜欢将属性的形容词形式添加到动词“enable”中,这将是一个更好的方法名称。

将其缩小为“启用”或“isEnabled”,这可能是个人风格和问题的关键。惯例。后者强调它是一个布尔;前者更简洁。