Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OOP_Answers_new_v_2_0-1(1).doc
Скачиваний:
22
Добавлен:
09.08.2019
Размер:
147.46 Кб
Скачать
  1. Функциональный тип – делегаты: понятие, назначение, примеры применения. Функция, как экземпляр делегата. Делегат, как свойство класса. Неполный.

Делегат — шаблон, определяющий синтаксис оператора, который описывает метод.

Делегаты являются ссылками на методы, инкапсулирующими настоящие указатели и предоставляющими удобные сервисы для работы с ними. Ссылки представляют собой объекты соответствующего типа. Все делегаты являются объектами типа System.Delegate (или System.MulticastDelegate, который является производным от первого).

Делегаты позволяют без использования дополнительных механизмов присоединить к событию несколько функций обработчиков. Фактически, делегат представляет собой объект — черный ящик, скрывающий в своих недрах указатели на функции.

  1. Программный проект: консольный, оконный. Файлы, составляющие проект. Исполняемые файлы (*.Ехе). Понятие «сборки» в .Net. Ничего.

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

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

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

В операторах присваивания часто возникает необходимость переменной одного типа присвоить значение выражения другого типа. При этом следует учитывать совместимость типов. Пусть переменная имеет тип Т1, а выражение — Т2. Эти типы считаются совместимыми, если:

  • оба они есть один и тот же тип;

  • оба они вещественные;

  • оба они целые и диапазон значений Т2 является подмножеством значений Т1;

  • тип Т1 — вещественный, а Т2 — целый;

  • тип Т1 — строка, а Т2 — символ;

  • тип Т2 является прямым или косвенным потомком класса Т1.

Если типы несовместимы, тип Т2 следует, если это возможно, привести к типу Т1. Приведение типов реализуется неявно, когда при вычислении выражения встречаются операнды, принадлежащие разным, но совместимым типам. Например, если оба операнда имеют тип char и осуществляется их сложение, результатом операции становится тип string.

Явное приведение достигается тем, что перед выражением или операндом в круглых скобках указывается тип, к которому он приводится. Например:

int in1 = 1, in2 = 2;

byte b1;

b1 = in1 + in2; // Ошибка! Тип int не совместим с типом byte

b1 = (byte)(in1 + in2); // Правильное преобразование

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

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

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

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

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

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

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

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

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