Контрольная_работа_НикитинаДС
.docx
Контрольная работа
Никитина Дарья ПИН-31Д
1) Какие типы данных существуют в языке C#?
В языке C# реализованы следующие базовые типы данных:
Целые типы: sbyte, byte, short, ushort, int, uint, long, ulong.
Типы, в которых сохраняются данные с плавающей запятой (соответствуют вещественному типу): float, double, decimal.
Символьный тип: char.
Логический тип: bool.
Строчный тип: string.
Объекты: object.
2) Какой тип данных является базовым для всех типов языка C#?
Object – может хранить значение любого типа данных и занимает 4 байта на 32-разрядной платформе и 8 байт на 64-разрядной платформе.
3) Что такое интерфейс?
Интерфейс – инструмент реализации полиморфизма в C#. Он представляет собой набор методов (свойств, событий, индексаторов), реализацию которых должен обеспечить класс, который реализует интерфейс. Интерфейс может содержать только сигнатуры (имя и типы параметров) своих членов. Интерфейс не может содержать конструкторы, поля, константы, статические члены. Создавать объекты интерфейса невозможно.
4) Как реализуется множественное наследование в C#?
Множественное наследование – это когда один класс сразу наследуется от нескольких классов. Но бывает так, что базовые классы содержат методы с одинаковыми именами, в результате чего возникают определенные неточности и ошибки. В C# класс может реализовать сразу несколько интерфейсов.
5) Что такое делегат? Что такое событие?
delegate — это класс, содержащий в себе «шаблон» метода, то есть, сигнатуру метода. Переменная делегатного типа — объект, который может содержать один или несколько объектов, представляющих собой методы с совместимой с «шаблоном» сигнатурой. То есть это как бы переменная, которая может содержать функции. Для таких переменных определена операция +, которая комбинирует слагаемые-функции в одну новую функцию, и симметричная операция -. Эти операции автоматически порождают производные операции += и -=.
event — это просто пара методов в классе, обозначаемых как add и remove, и имеющих произвольную семантику, выбранную программистом. (Аналог — геттер и сеттер свойства.) В имплементации по умолчанию для event'а заводится скрытое поле делегатного типа, а add/remove добавляют или убирают из него методы (под lock'ом). (Чтобы немного запутать картину, это скрытое поле доступно по тому же имени, что и event.) Функции add/remove, составляющие event, вызываются соответственно как += и -=. Никаких операций +/-, разумеется, нету.
6) Какой модификатор доступа запрещает наследование отдельных полей или методов класса?
Ключевое слово sealed может быть применено для методов и полей. Использование sealed для метода означает, что метод запрещено переопределять в унаследованных классах.
7) Какой тип исключений является базовым для остальных? Какие типы исключений вы знаете?
Базовым для всех типов исключений является тип Exception. Этот тип определяет ряд свойств, с помощью которых можно получить информацию об исключении.
InnerException: хранит информацию об исключении, которое послужило причиной текущего исключения;
Message: хранит сообщение об исключении, текст ошибки;
Source: хранит имя объекта или сборки, которое вызвало исключение;
StackTrace: возвращает строковое представление стека вызовов, которые привели к возникновению исключения;
TargetSite: возвращает метод, в котором и было вызвано исключение.