Подтвердить что ты не робот

CA1726: запрещенное слово FxCop: флаги

кто-то хочет, чтобы я сделал код других людей соответствующим набору правил FxCop, который включает правило CA1726: используйте предпочтительные условия. Большинство терминов/заменяются в порядке, и я понимаю, что нужно решить один единственный способ назвать вещи.

Однако какая сделка с термином "флаги"? Может ли кто-нибудь объяснить мне, почему я не буду использовать это имя? (прежде чем я пойду и пожалуюсь на это у моего начальника;))

Скажем, у меня есть объект данных, который имеет член класса 'flags', который связывает большое количество свойств, которые определяют, как обрабатывать объект данных. Как еще вы это называете?

4b9b3361

Ответ 1

В книге Framework Design Guidelines, на которой основан FxCop, авторы говорят, что использование Flag или Flags - плохая идея. Их альтернативное предложение состоит в том, что при перечислении имен, в которых вы используете уникальное имя для стандартных перечислений и множественное имя для битовых полей (флагов).

Например, если вы хотите создать перечисление, в котором перечислены разные видимости, вы должны называть его Visibilities вместо VisibilityFlags или Visibility:

[Flags]
public enum Visibilities {
   Public,
   Private
}

Только те элементы, которые считаются флагами в .NET авторами, являются перечислениями битовых полей из-за ключевого слова Flags.

Ответ 2

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

Флаг или флаги | Не существует замены. Не используйте.

Например, Flags обычно используется с перечислениями (которые украшены соответствующим атрибутом), и нам, конечно, не нужно явно указывать это в имени/идентификаторе свойства:

[Flags]
enum StorageMode
{
    None = 0,
    Next = 1,
    ...
    Last = 32
}

class StorableItem
{
    public StorageMode StorageMode { get; set; }
}

Но в вашем случае у меня возникает ощущение, что все, что названо, или содержится в его имени, Flags, на самом деле не является набором флагов в указанном выше смысле, что просто вызывает еще одну причину, почему чтобы избежать этого.