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

C# 命名布尔属性的FDG是什么?,c#,.net,design-guidelines,C#,.net,Design Guidelines,命名布尔属性的最佳方法是什么?如果没有,你有什么建议 假设我有一个User类,我需要一个属性来指定用户是否启用。以下是我能想到的选项: 使能 启用 我迷路了 禁用 残废 禁用 此外,如果BL规定用户必须默认禁用并显式启用,考虑到System.Boolean的默认值为false?框架设计指南(Brad Abrahms和Krzysztof Cwalina)假设使用已启用或已启用(第节)。他们说使用肯定短语(即CanSeek而不是CantSeek),并使用可读性最强的版本(即Created比IsC

命名布尔属性的最佳方法是什么?如果没有,你有什么建议

假设我有一个
User
类,我需要一个属性来指定用户是否启用。以下是我能想到的选项:

  • 使能
  • 启用
  • 我迷路了
  • 禁用
  • 残废
  • 禁用

此外,如果BL规定用户必须默认禁用并显式启用,考虑到
System.Boolean
的默认值为
false

框架设计指南(Brad Abrahms和Krzysztof Cwalina)假设使用
已启用
已启用
(第节)。他们说使用肯定短语(即CanSeek而不是CantSeek),并使用可读性最强的版本(即Created比IsCreated更可读)

我个人会在您的案例中使用
Enabled
,默认值为
false
User.Enabled
读起来很好,它的意思也很清楚。

我会避免使用“disabled”这个变量,因为像“disabled=false”这样的双负数比“Enabled=true”更难理解

与动词“enable”相比,我更喜欢属性的形容词形式,后者是更好的方法名称


这就把范围缩小到“启用”或“isEnabled”,这可能是个人风格和惯例的问题。后者强调这是一个布尔;前者更简洁。

有趣的是,微软的一些代码没有遵循这一准则,例如System.Web.Mvc.MvcHandler有一个静态属性disablevcsresponseheader。他们为什么选择使用禁用?这是因为它在默认情况下是启用的,而bool在默认情况下是false,因此它在默认情况下不是禁用的吗?