Обычно это закрытая переменная, которая используется другими членами (свойствами, методами) в качестве удобного способа отслеживать и определять состояние для выбора из более чем одного курса действий.
Это часто, ноне всегда, логические значения или значения перечисления.
Например, у вас может быть логический «флаг» с именем IsDataLoaded
и метод с именем ShowResults()
.В теле метода ShowResults()
вы должны проверить значение флага IsDataLoaded
, а если оно равно true
, просто показать результаты.Если false
, вы сначала вызовете метод LoadData()
.После загрузки данных метод LoadData()
изменит флаг с false
на true
.
Используя перечисления и битовые маски, «флаги» могут быть набором настроек или опций, содержащихся водно значение.Например, если вы определите следующее (C #):
enum foo
{
CaseSensitive = 1,
Use24HourTime = 2,
IgnoreRegistrySetting = 4,
LoadFoosAndBarsSeparately = 8
}
Вы сможете указать настройки с простым значением, например 13
, или указать «флаги» с помощью CaseSensitive | IgnoreRegistrySetting | LoadFoosAndBarsSeparately
.
В .NET есть атрибут System.FlagsAttribute
:
System.FlagsAttribute : Указывает, что перечисление можно рассматривать как битполе;то есть набор флагов.