Перечисления C# с атрибутом флагов

! [Архитектура MVC] [1]

Модель-представление-контроллер (MVC) - это программный архитектурный шаблон для реализации пользовательских интерфейсов. Он разделяет данное программное приложение на три взаимосвязанные части, чтобы отделить внутреннее представление информации от того, как информация представляется или принимается от пользователя.

10
задан Juha Syrjälä 24 November 2009 в 19:42
поделиться

3 ответа

Это немного проще:

[Flags]
public enum MyColor
{
    Yellow = 1<<0,
    Green = 1<<1,
    Red = 1<<2,
    Blue = 1<<3
}
13
ответ дан 3 December 2019 в 18:33
поделиться

Они, вероятно, могли бы, но с компилятором такого размера они должны учитывать время и ресурсы, необходимые для реализации чего-либо, и потенциальную выгоду, особенно с таким синтаксическим сахаром. И это просто синтаксический сахар, потому что вы можете написать его вручную.

3
ответ дан 3 December 2019 в 18:33
поделиться

Я полагаю, это потому, что экземпляр FlagsAttribute компилируется вместе с Enum или после него. Другими словами, украшение объекта атрибутом (например, [Flags]) вызывает создание объекта атрибута, оно не изменяет базовый объект фундаментальным образом.

Кроме того, часть сохраненной информации (для запуска -время создания экземпляра атрибута) - это объект, к которому он относится. Может случиться так, что перечисление сущности должно быть скомпилировано до его атрибутов, чтобы атрибут не мог повлиять на сущность, на которую он ссылается (в данном случае перечисление). Я не

3
ответ дан 3 December 2019 в 18:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: