2009-10-12 2 views
7

Что такое Framework Design Guideline для именования булевых свойств? Если его нет, то какова ваша рекомендация?Что такое FDG для именования булевых свойств?

Предположим, у меня есть класс User, и мне нужно свойство, которое указывает, включен ли пользователь или нет. Эти варианты я могу думать:

  • Включить
  • Enabled
  • IsEnabled
  • Отключить
  • Disabled
  • IsDisabled

Кроме того, если BL говорит о том, что пользователь должен быть отключен по умолчанию и явно включен, если я предпочитаю вариант «включить», co что значение по умолчанию для System.Boolean равно false?

ответ

8

Руководства по разработке рамок (Brad Abrahms и Krzysztof Cwalina) говорят, что использовать либо Enabled, либо IsEnabled (раздел 3.6.2). Говорят, что они используют утвердительные фразы (например, CanSeek вместо CantSeek) и использовать наиболее читаемую версию (т. Е. Созданная более читабельна, чем IsCreated).

Я бы лично использовал Enabled в вашем случае со значением по умолчанию false. User.Enabled хорошо читает и ясно, в чем его смысл.

+0

Интересно, как какой-то код из Microsoft не следует этому руководству, например. System.Web.Mvc.MvcHandler имеет статическое свойство DisableMvcResponseHeader. Почему они решили использовать Disable? это потому, что он включен по умолчанию, а bool по умолчанию false, поэтому по умолчанию он отключен? –

2

Я бы избежал «отключенной» вариации, так как двойной отрицательный, как «disabled = false», гораздо сложнее понять, чем «enabled = true».

Я также предпочел бы форму прилагательного для свойства глагола «включить», что было бы лучшим именем метода.

Это сужает его до «включено» или «isEnabled», что, вероятно, является вопросом личного стиля. & конвенция. Последний подчеркивает, что это болтовня; первая более кратка.

Смежные вопросы