Включено или включено? - PullRequest
       2

Включено или включено?

6 голосов
/ 01 сентября 2010

В Silverlight и WPF свойства, которые являются логическими значениями, имеют префикс Is ( почти все ), например:

IsEnabled
IsTabStop
IsHitTestVisible

Во всех других средах Microsoft (winforms, BCL, ASP.NET) Is не используется.Что побудило их команду отойти от первоначального соглашения об именах - эволюция или промахи, которые должны были остаться?

Ответы [ 3 ]

14 голосов
/ 01 сентября 2010

Лично я всегда стараюсь ставить булевы значения перед чем-то, что добавляет немного больше значения (есть, имеет, может и т. Д.).Я использую следующие рекомендации Microsoft:

Назовите логические свойства с помощью утвердительной фразы (CanSeek вместо CantSeek).При желании вы также можете добавить префикс логических свойств к Is, Can или Has, но только там, где это добавляет значение.

MSDN - Имена членов типа

Я не верю, что так было всегда Так было не всегда.Эта практика восходит к .NET 2.0.До этого все было честно.Однако очистка этих имен в более новых версиях Framework вызовет все виды головной боли (следовательно, часть кода Framework использует соглашение, а некоторые нет).

Это определенно делает вещи более читабельными.Даже используя пример из вашего вопроса.Что бы вы предпочли?

// ambiguous naming, could mean many things
myTab.TabStop

или

// definitely a true/false value
myTab.IsTabStop
3 голосов
/ 01 сентября 2010

Префикс Is является частью официального руководства Microsoft Framework Design (это не означает, что все продукты MS придерживаются его ...).

Лично я считаю его полезным, если его последовательно использовать,Это сразу говорит вам, что свойство является логическим.Вы можете использовать это или нет, самое главное, чтобы быть последовательным об этом ...

Томас

3 голосов
/ 01 сентября 2010

Префикс Is может дать подсказку о том, что свойство имеет только аксессор get, и, как сказали Томас и Рэйчел, это бул. Пропустите префикс, если вы собираетесь использовать методы доступа get и set, а его тип отличается от bool.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...