Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Экзамен в гаи redacted.doc
Скачиваний:
5
Добавлен:
27.09.2019
Размер:
676.35 Кб
Скачать

3.Что будут выведено на экран в результате выполнения кода приведенного ниже?

List<int> list = new List<int>() { 1, 2, 3, 4, 5 };

List<int> all = list.FindAll(

i => { Console.Write(i); return i < 3; }

);

Ответ: 12345. Делегат, переданный методу FindAll вызывается для каждого элемента. Вопрос на внимательность, поскольку делегат используется как фильтрующая функция, применяемая к каждому элементу.

Экзаменационный билет №21

1.Переменные. Объявление и инициализация

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

<тип> <имя>;

Эквивалентные формы определения переменных элементарных размерных типов:

int a;

System.Int32 a;

Эквивалентные формы записи операторов определения и инициализации переменных элементарных размерных типов:

int a = 0;

int a = new int(); // Идентичен int a = 0;

System.Int32 a = 0;

System.Int32 a = new System.Int32();

Локальные переменные в C# должны быть инициализированы перед использованием. Например, можно объявить локальную переменную без инициализации.

Оператор new вызывает конструктор определенного типа по умолчанию и присваивает переменной значение по умолчанию. При наличии пользовательских типов используйте new для вызова конструктора по умолчанию. В следующем примере кода вызывается конструктор по умолчанию структуры Point.

Point p = new Point();

2.Наследование. Замещение методов. Проверка совместимости типов.

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

Наследование является мощнейшим инструментом ООП и применяется для следующих взаимосвязанных целей:

• исключения из программы повторяющихся фрагментов кода;

• упрощения модификации программы;

• упрощения создания новых программ на основе существующих.

Кроме того, только благодаря наследованию появляется возможность использовать

объекты, исходный код которых недоступен, но в которые требуется внести

изменения.

Наследование позволяет создавать иерархии объектов. Иерархия представляется

в виде дерева, в котором более общие объекты располагаются ближе к корню, а более

специализированные — на ветвях и листьях. Наследование облегчает использование

библиотек объектов, поскольку программист может взять за основу объекты,

разработанные кем-то другим, и создать наследников с требуемыми свойствами.

Объект, на основании которого строится новый объект, называется родительским

объектом, объектом-предком, базовым классом, или суперклассом, а унаследованный

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

Наследование классов предоставляет программисту богатейшие возможности

организации кода и его многократного использования. Выбор наиболее подходящих

средств для целей конкретного проекта основывается на знании механизма

их работы и взаимодействия.

Наследование класса Y от класса X означает, что Y представляет собой разновидность

класса X, то есть более конкретную, частную концепцию. Базовый класс 1

является более общим понятием, чем Y1. Везде, где можно использовать X, можно

использовать и Y, но не наоборот (вспомните, что на место базового класса

можно передавать любой из производных). Необходимо помнить, что во время

1 Например, каждый программист — человек, но не каждый человек — программист.

*не полный*