Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OOP_Answers_new_v_1_5.doc
Скачиваний:
6
Добавлен:
05.08.2019
Размер:
107.52 Кб
Скачать
  1. Программный проект: консольный, оконный. Файлы, составляющие проект. Исполняемые файлы (*.Ехе). Понятие «сборки» в .Net. Ничего.

Сборка — код программы после компиляции.

  1. Система типов языка C#. Размерные (value-type) и ссылочные (reference-type) типы. Семантика присваивания. Преобразования между ссылочными и размерными типами. «Упаковка-распаковка» типов (boxing, unboxing).

  2. Соглашение о совместимости и преобразование типов. Явные и неявные преобразования. Класс Convert.

  3. Переменные и выражения. Области видимости и жизни переменных. Глобальные и локальные переменные. Константы. Полный.

С объектной точки зрения переменная — это экземпляр типа. Скалярную переменную (число, строка или ссылка) можно рассматривать как сущность, обладающую именем, значением и типом.

Имя и тип задаются при объявлении переменной и остаются неизменными на все время ее жизни. Значение переменной может меняться в ходе вычислений, эта возможность вариации значений и дало имя понятию переменная (variable) в математике и программировании.

Получение начального значения переменной называется ее инициализацией. Важной особенностью C# является требование обязательной инициализации переменной до начала ее использования.

Область видимости — место в коде программы, в котором может использоваться данная переменная.

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

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

Константа — переменная с неизменяемым значением.

  1. Операции в выражениях, приоритет операций. Операции sizeof и typeof. Операция new.

  2. Методы арифметических классов. Операции сдвига.

  3. Логические операции, условные выражения. Операции проверки типа и приведения к типу.

  4. Составные типы данных, массивы, списки. Многомерные и вложенные (jagged) массивы. Класс Array. Семантика присваивания массивов.

  5. Строки постоянной длины (string и String) и построитель строк (StringBuilder). Операции над строками.

  6. Структуры (struct) и перечисления (enum). Отличия структур от классов. Полный.

Структура — конструкция, позволяющая объединять данные разных типов.

Стек — структура данных, в которой обращение к данным и добавление их происходит последовательно. То есть, чтобы обратиться к нижнему элементу, нужно удалить все элементы над ним.

Отличия структур от классов в разных языках разнятся. Отличия для языка С#:

  • Размещение — в области стека.

  • Копирование — создаётся отдельная копия объекта, которая после копирования живёт «своей жизнью».

  • Наследование — не разрешается дополнение своими свойствами; от него нельзя наследовать.

  • Передача параметров — как локальные копии переменных (в классах — как ссылки).

  • Невозможно создание конструктора по умолчанию — без параметров (в классах — без ограничений).

  • Освобождение переменной — при выходе за пределы её видимости (в классах — во время сборки мусора).

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

Обычно лучше всего определять перечисление прямо в пространстве имен, чтобы всем классам в пространстве имен было одинаково удобно получить к нему доступ. Однако перечисление также может быть вложено в классе или структуре.

По умолчанию первому перечислителю задано значение, равное нулю, а значение каждого последующего оператора увеличивается на 1.