Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы Программирование.docx
Скачиваний:
130
Добавлен:
19.09.2017
Размер:
360.74 Кб
Скачать

Вопрос 8.

Перечислимые типы (enum)

Перечисление (enumeration) — отдельный тип, который состоит из набора именованных констант. Перечисляемые типы относятся к значимым типам. Объявляются перечисляемые типы с помощью ключевого слова enum.

Синтаксис такой: enum имя {список_перечисления);

Имя задает имя перечисляемого типа, а список перечисления представляет собой список идентификаторов, разделенных запятыми.

Доступ к членам перечисления осуществляется с помощью имени перечисляемого типа и оператора точка.

Пример: enum Days { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };

Вызов: string s = Days.Sunday; //s= Sunday

Каждый член перечисления указывает на целочисленное значение. По умолчанию эти значения имеют тип int и членам перечисления присваиваются константы 0, 1, 2, ... (т.е. целые числа начиная с нуля). Однако для членов перечисления можно задать и другой целочисленный тип:

public enum BorderSide : byte { Left,Right,Top,Bottom }

Также можно явно задать целочисленные значения для каждого члена:

public enum BorderSide : byte     { Left=1, Right=2, Top=10, Bottom=11 }

Можно задать только некоторые члены перечисления, при этом члены, которым не заданы значения, будут увеличиваться на один с последнего заданного члена:

public enum BorderSide : byte     { Left=1, Right, Top=10, Bottom }

Значение перечисления можно представить тремя способами:

  • как тип enum

  • как лежащее в основе целочисленное значение

  • как строку

Значения перечислений могут преобразовываться между этими типами.

Структуры (Structs)

Структуры схожи с классами, но имеют два ключевых отличия:

  • структура - значимый тип, класс - ссылочный тип

  • структуры не поддерживают наследования

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

Структура может быть использована вместо класса если симантика значимых типов более предпочтительны (например, в случае с числовыми типами). К тому же структуры более эффективны в плане производительности, т.к. на них расходуется меньше памяти.

У структур существует скрытый конструктор без параметров. Он используется по умолчанию и его нельзя переопределить. Он присваивает всем полям нулевые значения.

Структуре можно задать конструктор с параметрами, в нем необходимо явно присвоить значения всем полям.

Синтаксис структуры:

[атрибуты][модификаторы]struct имя_структуры[:список_интерфейсов]

{тело_структуры}

// Создадим структуру

struct UserInfo

{

public string Name;

public byte Age;

public UserInfo(string Name, byte Age)

{

this.Name = Name;

this.Age = Age;

}

}

Вопрос 9.

Выражение – это совокупность переменных, констант и функций, соединенных знаками операций и имеющая результат, в виде неименованных констант. (System.Convert.ToInt32(“35”);

x>20 && x<30)

Опера́нд (англ. operand) – знак, обозначающий операцию. ( ++, !=, ==, &)

Оператор – исходные данные для операции и ее участник. (x,y,переменные, константы)

Опера́ция — специальное действие, инструкция, всегда имеющая результат, возвращаемый на месте использования операции.

10 ВОПРОС

По количеству аргументов:

  1. Унарные

  2. Бинарные

  3. Тернарные

По форме записи:

  1. Префиксные

  2. Постфиксные

  3. Инфиксные

Порядок приоритета:

  1. Основные

x.y – доступ к членам

f(x) – вызов метода или делегата

a[x] – доступ к массиву или индексатору

  1. Унарные (--x ++x !x)

  2. Мультиплакативные (* \ %)

  3. Аддитивные (+ -)

  4. Операторы сдвига (<< >>)

  5. Операторы отношения (< > <= >= as is)

  6. Операторы равенства (== !=)

  7. Логические, условные операции (&& || ?:)

  8. Операторы присваивания (+= -= *= =)