- •1. Понятие информационной системы (ис). Корпоративные ис. Структура ис.
- •2. Понятие информационной системы (ис). Корпоративные ис. Классификация ис.
- •3. История развития ис.
- •4. .Net Framework. Общеязыковая среда исполнения (clr). Управляемые модули и сборки.
- •5. .Net Framework. Общая система типов (cts) и Общеязыковая спецификация (cls).
- •6. .Net Framework. Механизм сборки мусора.
- •7. C#. Объявление класса.
- •8. Java. Объявление класса.
- •9. C#. Делегаты.
- •10. C#. События.
- •11. C#. Наследование: правила, синтаксис. Сокрытие имен.
- •12. Java. Наследование: правила, синтаксис. Сокрытие имен.
- •13. Правила наследования типов. Принцип «Open-Closed Principle».
- •14. Правила наследования типов. Принцип «Liskov Substitution Principle».
- •15. C#. Приведение типов. Операторы as и is.
- •16. C#. Виртуальные и невиртуальные методы. Статические методы.
- •17. C#. Абстрактные и конечные методы.
- •310 Часть I. Язык с#
- •18. Java. Абстрактные, виртуальные, конечные и статические методы.
- •19. C# и Java. Интерфейсы.
- •20.C#. Структуры.
- •21. C#. Перечисления.
- •22.C#. Упаковка и распаковка объектов значимых типов.
- •23.C# и Java. Исключения. Механизм исключений.
- •24.C# и Java. Исключения. Классы исключений.
- •25.C# и Java. Исключения. Основные принципы использования механизма
- •26.C#. Обобщения: понятие и синтаксис. Ограничения обобщений.
- •27. Java. Обобщения: понятие и синтаксис.
- •28.C#. Коллекции.
- •29.Java. Коллекции.
- •30.C#. Dispose Pattern.
- •31. .Net Framework 3.0, 3.5, 3.5 sp1: общая характеристика.
- •32. C# 3.0, linq: обзор.
- •Источники данных
- •SqlMetal
- •33. Понятие жизненного цикла ис (жц ис). Каскадная модель жц ис.
- •34. Понятие жизненного цикла ис (жц ис). Спиральная модель жц ис.
- •35. Анализ требований. Функциональные и нефункциональные требования.
- •36 Требования и прецеденты. Формат описания прецедента. Структура прецедента.
- •37 Требования и прецеденты. Взаимосвязь прецедентов.
- •38 Модель предметной области. Концептуальные классы. Ассоциации и атрибуты.
- •39 Язык uml. Способы использования. Model Driven Architecture. Executable uml. ДиаграммыUml.
- •40 Диаграмма прецедентов.
- •41. Диаграмма классов. Обозначение классов. Отношение ассоциации.
- •42.Диаграмма классов. Обозначение интерфейсов. Отношение обобщения и зависимости.
- •43.Диаграмма объектов.
- •44.Диаграмма пакетов.
- •45.Диаграмма состояний.
- •46.Диаграмма развертывания.
- •49.Диаграмма коммуникации.
- •50.Паттерн: понятие, структура, классификация.
- •1) Понятие паттерна
- •2) Структура и Классификация паттернов
- •51. Проектирование на основе обязанностей. Принципы grasp.
- •52.Grasp: принцип Low Coupling.
- •53.Grasp: принцип High Cohesion.
- •54.Grasp: принцип Information Expert.
- •55. Grasp: принцип Creator.
- •56.Grasp: принцип Pure Fabrication.
- •57. Grasp: принцип Indirection.
- •59.Grasp: принцип Protected Variations.
- •60.Grasp: принцип Controller.
21. C#. Перечисления.
Понятие и синтаксис
Перечисление (enumeration, enumerated type) – множество именованных целочисленных констант
enum Имя : ОсновнойТип {
Константа = значение,
...
}
Правила
неявно наследуются от System.Enum (наследник System.ValueType); изменить базовый тип нельзя
каждая константа — целое число
неявное преобразование к целому типу не определено
неприменимы модификаторы abstract, virtual, protected
Пример
enum Color : byte {
None = 0,
Red,
Green = 3,
Blue
}
Color color = Color.Green;
На самом деле
struct Color : System.Enum {
public const Color None = (Color)0,
public const Color Red = (Color)1,
public const Color Green = (Color)3,
public const Color Blue = (Color)4
public Byte value__;
}
Ключевое слово enum используется для объявления перечисления, отдельного типа, состоящего из набора именованных констант, который называется списком перечислителя.
Обычно лучше всего определять перечисление прямо в пространстве имен, чтобы всем классам в пространстве имен было одинаково удобно получить к нему доступ. Однако перечисление также может быть вложено в классе или структуре.
По умолчанию первому перечислителю задано значение, равное нулю, а значение каждого последующего оператора увеличивается на 1. Например:
enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};
В этом перечислении Sat имеет значение 0, Sun — 1, Mon — 2 и т. д. Для переопределения значений по умолчанию перечисления могут иметь инициализаторы. Пример.
enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};
В этом перечислении последовательность элементов принудительно начинается с 1, а не с 0. Однако настоятельно рекомендуется, чтобы перечисление содержало константу со значением 0. Дополнительные сведения см. в разделе Типы перечислений (руководство по программированию в C#).
Каждый тип перечисления имеет базовый тип, который может быть любым целым типом, исключая char. По умолчанию базовым типом элементов перечисления является int. Чтобы объявить перечисление другого целого типа, например byte, после идентификатора поставьте двоеточие, а затем укажите тип.
enum Days : byte {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};
Для перечисления утверждены следующие типы: byte, sbyte, short, ushort, int, uint, long или ulong.
Переменной типа Days может быть назначено любое значение, входящее в диапазон базового типа; значения не ограничены именованными константами.
Значением по умолчанию enum E является значение, созданное выражением (E)0.Примечание.
Имя перечислителя может не содержать пробелов.
Базовый тип указывает размер хранилища, выделенного для каждого перечислителя. Однако для преобразования из типа enum в целочисленный тип необходимо явное приведение. Например, следующий оператор назначает перечислитель Sun переменной типа int, используя приведение для преобразования enum в int:
int x = (int)Days.Sun;
При применении System.FlagsAttribute к перечислению, содержащему несколько элементов в сочетании с битовой операцией OR, будет заметно, что атрибут оказывает влияние на действие enum, когда оно используется с некоторыми инструментами. Эти изменения можно заметить при использовании таких средств, как методы класса Console, вычислитель выражений и т. д.
