Вы имеете ввиду, битовые флаги.
В общем то отличия от обычного перечисления особого нет, правда следует задавать явно числовые значения .
[Flags]
enum Location {
Top = 0x0001,
Left = 0x0002,
Center = 0x0004
}
Атрибут [Flags] можно и упустить, правда он него зависит результат ToString
R>MyMethod(Location.Top|Location.Center); R>т.е. я хочу чтобы скажем текст располагался по центру И сверху
да, правильно
R>и как оптимальным образом это парсить?
Здравствуйте, fist, Вы писали:
F>Здравствуйте, oRover, Вы писали:
F>Вы имеете ввиду, битовые флаги. F>В общем то отличия от обычного перечисления особого нет, правда следует задавать явно числовые значения .
зачем они нужны и как их задавать?
F>
F>[Flags]
F>enum Location {
F> Top = 0x0001,
F> Left = 0x0002,
F> Center = 0x0004
F>}
F>
F>Атрибут [Flags] можно и упустить, правда он него зависит результат ToString
R>>MyMethod(Location.Top|Location.Center); R>>т.е. я хочу чтобы скажем текст располагался по центру И сверху F>да, правильно
R>>и как оптимальным образом это парсить?
F>С помощью & F>
"oRover" <20111@news.rsdn.ru> wrote in message news:632706@news.rsdn.ru... > Как делается сабж. Например > > MyMethod(Location.Top|Location.Center);
Вообще если тебе нужно определять локейшин в 2х-мерном пространстве, то лучше все-таки (ИМХО) использовать не флаги, а расширить соответствующим образом энумерации, так как получится более наглядно. Например, как сделано в ContentAlignment.
F>>Вы имеете ввиду, битовые флаги. F>>В общем то отличия от обычного перечисления особого нет, правда следует задавать явно числовые значения .
R>зачем они нужны и как их задавать?
Просто ссылки на идентификаторы, которые описывают данный тип (Top, Left, ...) компилятор преобразует в числовое значение. По умолчанию 0,1,...
Вам же нужно так задать числовые значения, чтоб однозначно можно было определить задано ли данное свойство или нет.
Степени двойки задавать не обязательно.