- •Экзаменационный билет №1
- •1. Структура и принципы функционирования приложений на платформе .Net, библиотека компонентов и классов .Net Framework, исполнительная среде clr.
- •2. Интерфейсы. Стандартные интерфейсы .Net. Сравнение и клонирование объектов. Структуры. Делегаты. События.
- •3. Каков результат компиляции и выполнения приведенного ниже кода?
- •Экзаменационный билет №2
- •1. Основные понятия ооп - инкапсуляция, наследование, полиморфизм.
- •2. Отношение между объектами. Включения и коллекции.
- •3. Что будет выведено в результате выполнения цикла?
- •Экзаменационный билет №3
- •1. Класс Delegate. Логика использования делегатов. Неизменяемость делегатов.
- •2. Пространство имён – определение, примеры
- •3. Что будет выведено на экран в каждом из случаев, приведенных ниже:
- •Экзаменационный билет №4
- •1. Структура программы на c#. Константы. Переменные: описание, область действия, время жизни. Операции, приоритеты операций.Структура программы на c#.
- •2. Параллельные и Взаимосвязанные Вычисления (ccr). Где используется ccr?
- •3. Что будет выведено на экран в каждом из случаев, приведенных ниже:
- •Экзаменационный билет №5
- •1. Понятие полиморфизма
- •2. Перегрузка функций. Алгоритм выбора перегруженной функции.
- •3. Что будет выведено в консоли в результате выполнения следующего кода (и почему):
- •Экзаменационный билет №6
- •1. Конструкторы, их виды (преобразования, умолчания, копирования). Деструктор.
- •2. Обзор dss.
- •3. Какой метод выберет компилятор?
- •Экзаменационный билет №7
- •1. Информационные члены класса и члены-методы.
- •2. Наследование классов. Синтаксис и общий смысл.
- •3. Какой метод выберет компилятор?
- •Экзаменационный билет №8
- •1. Массивы. Строки. Потоки и файлы.
- •2. Ccr.Итераторы.
- •3. Что будет выведено в результате выполнения цикла?
- •Экзаменационный билет №9
- •1. Пространство имён – определение, примеры.
- •2. Циклы for, while, do. Прерывание циклов.
- •3. Что будет выведено в результате выполнения цикла?
- •Экзаменационный билет №10
- •1. Сокрытие методов базового класса.
- •2.Операции в c# (привести примеры операций для логических типов, арифметических и т.Д.)
- •3. Найти неправильное(ые) описание(я) двумерного массива
- •Экзаменационный билет №11
- •1. Конструкторы. Ключевое слово this.
- •2.Особенности итераторов в ccr. Итераторы
- •3.Найти неправильное(ые) описание(я) одномерного массива
- •Экзаменационный билет №12
- •1.Clr (CommonLanguageRuntime) – определение, примеры задач clr, состав ядра.
- •2.Понятие инкапсуляции.
- •3.Каков результат компиляции и выполнения приведенного ниже кода?
- •Экзаменационный билет №13
- •1.Статические члены класса
- •2.Что такое полиморфизм? Пример полиморфизма.
- •3.Что будет выведено на экран при выполнении приведенного ниже кода?
- •Экзаменационный билет №14
- •1.Понятие класса. Доступ к членам класса.
- •2. Инкапсуляция. Понятие класса как абстрактного типа данных.
- •3.Как метод выберет компилятор?
- •Экзаменационный билет №15
- •1. Понятие события
- •2. Механизмы инкапсуляции в c#. Вложенные типы.
- •3. Каков результат компиляции и выполнения приведенного ниже кода?
- •Экзаменационный билет №16
- •1.Определение классов в с#. Ключевые слова internal, public, abstract
- •2.Потоковый ввод-вывод. Работа с файлами/каталогами
- •3. Какой метод выберет компилятор?
- •Экзаменационный билет №17
- •1. Интерфейсы
- •2.Параллельные и Взаимосвязанные Вычисления (ccr). Где используется ccr?
- •3.Что следует ожидать на экране?
- •Экзаменационный билет №18
- •1.Ссылочные типы и типы-значения
- •2.Класс Delegate. Логика использования делегатов. Неизменяемость делегатов.
- •3.Что будет выведено в результате выполнения цикла?
- •Экзаменационный билет №19
- •1.Clr (CommonLanguageRuntime) – определение, примеры задач clr, состав ядра
- •2.Зачем нужны частичные(partial) методы в c#?
- •3.Что будет выведено в консоли в результате выполнения следующего кода (и почему):
- •Экзаменационный билет №20
- •1.Простые типы. Примеры.
- •2.Ссылочный тип данных
- •3.Что будут выведено на экран в результате выполнения кода приведенного ниже?
- •Экзаменационный билет №21
- •1.Переменные. Объявление и инициализация
- •2.Наследование. Замещение методов. Проверка совместимости типов.
- •3.Что будет выведено в результате выполнения цикла?
- •Экзаменационный билет №22
- •1.Определение классов в с#. Ключевые слова internal, public, abstract
- •2.Библиотеки и типы, используемые при симуляции в Robotics
- •3.Что будет выведено на экран при выполнении приведенного ниже кода?
- •Экзаменационный билет №23
- •Экзаменационный билет №24
- •Экзаменационный билет №25
3. Какой метод выберет компилятор?
public class Test
{
public Test(object obj) { Console.WriteLine("object"); }
public Test(int[] obj) { Console.WriteLine("int[]"); }
}
public static void Main() { Test t = new Test(null); }
Ответ: Int[]. Компилятор при определении вызова не использует текущее значение, а выбирает наиболее «специфический» конструктор. Нужно явно указать тип, если есть желание вызвать конструктор object: new Test((object)null);
Экзаменационный билет №7
1. Информационные члены класса и члены-методы.
class Имя_класса { определение_членов_класса };
Члены класса можно разделить на информационные члены и функции-члены (методы) класса. Информационные члены описывают внутреннюю структуру информации, хранящейся в объекте, который создается на основе класса. Методы класса описывают алгоритмы обработки этой информации. Данные, хранящиеся в информационных членах, описывают состояние объекта, созданного на основе класса. Состояние объекта изменяется на основе изменения хранящихся данных с помощью методов класса. Алгоритмы, заложенные в реализации методов класса, определяют поведение объекта, то есть реагирование объекта на поступающие внешние воздействия в виде входных данных.
Свойства и поля
Свойства и поля обеспечивают доступ к содержащимся в объекте данным. Эти данные как раз и являются тем, что отличает отдельные объекты друг от друга, поскольку в свойствах и полях разных объектов одного и того же класса могут храниться разные значения.
Различные фрагменты содержащихся в объекте данных все вместе образуют состояние этого объекта. Например, предположим, что имеется класс объектов, представляющий чашку кофе и потому имеющий имя CupOfCoffee. При создании экземпляра этого класса (т.е. создании объекта этого класса), для него нужно обязательно обеспечить состояние, чтобы он нес какой-то смысл. Для этого можно использовать свойства и поля с целью предоставления использующему данный объект коду возможности определять сорт используемого кофе, то, содержится ли в кофе молоко и/или сахар, является ли кофе растворимым и т.д. Тогда каждый конкретный объект CupOfCofee будет иметь определенное состояние, например: "Чашка колумбийского кофе с молоком и двумя ложками сахара".
Как поля, так и свойства добавляются путем ввода, поэтому информация может в них сохраняться в виде значений string, int и т.д. Свойства, однако, отличаются от полей тем, что они не предоставляют непосредственного доступа к данным. Объекты могут ограждать пользователей от мельчайших деталей своих данных, которые не нуждаются в представлении "один к одному" существующих свойств. Скажем, в случае поля для сохранения информации о количестве ложек сахара в экземпляре CupOfCof fee пользователи смогут помещать в него любые желаемые значения и подвергаться лишь тем ограничениям, которые имеются у использованного для хранения этой информации типа. То есть, например, в случае использования для хранения этих данных типа int пользователи смогут помещать в это поле любое значение в диапазоне от -2 147 483 648 до 2 147 483 647, как было показано в главе 3. Очевидно, что не все значения в этом диапазоне будут иметь смысл, особенно отрицательные, да и некоторые большие положительные тоже могут требовать чашки необычайно больших размеров. В случае же применения свойства для сохранения этой информации данное значение можно легко ограничить, скажем, только числами от 0 до 2.
В общем, для доступа к состоянию лучше предоставлять свойства, а не поля, поскольку они позволяют управлять большим количеством аспектов. Этот выбор никак не влияет на код, применяющий экземпляры объектов, потому что синтаксис для использования свойств и полей выглядит одинаково.
Методы.
Метод – это термин, которым принято называть представляемую объектом функцию. Методы могут вызываться так же, как и любые другие функции, и тем же самым образом использовать возвращаемые значения и параметры.
Методы применяются для обеспечения доступа к функциональным возможностям объекта. Подобно полям и свойствам, они могут быть общедоступными или приватными и тем самым ограничивать доступ для внешнего кода необходимым образом. Они нередко подразумевают использование состояния объекта в своих операциях и имеют доступ к приватным членам, вроде приватных полей, если в том есть необходимость. Например, класс CupOfCoffee может иметь метод AddSugar(), предоставляющий более удобочитаемый синтаксис для увеличения количества сахара, чем установка соответствующего свойства Sugar.
Синтаксис методов в принципе похож на синтаксис полей и свойств, но только в нем еще отображается возвращаемый тип и параметры методов.