- •Вопрос 1 Классы обзор элементов класса.
- •Обзор элементов класса.
- •Вопрос 2 Методы. Синтаксический блок. Ссылочные параметры ref и out
- •Объявление методов
- •Возврат из метода и возврат значения
- •Вопрос 3 Перегрузка методов. Перегрузка методов. Вызов методов с одинаковым именем и разными аргументами
- •Вопрос 4 Переменное число аргументов метода params. Переменное число аргументов метода
- •Вопрос 5 Ссылочные параметры ref и out сравнительный анализ.
- •Вопрос 6 Конструкторы. Виды конструкторов, области применения, синтаксический блок.
- •Вызов конструктора экземпляра
- •Закрытые конструкторы экземпляра
- •Статические конструкторы
- •Конструкторы структур
- •Вопрос 7 Свойства. Область применения. Синтаксический блок.
- •Вопрос 8 Наследование. Предпосылки появления. Типы наследования. Синтаксический блок.
- •Вопрос 9 Виртуальные функции virtual. Вызов базовых версий функций base.
- •Вызов базовых версий функций
- •Вопрос 10 Наследование. Динамическое связывание.
- •Вопрос 11 Абстрактные методы. Особенности применения. Синтаксический блок
- •Абстрактный метод в c#
- •Вопрос 12 Абстрактные классы. Синтаксический блок. Особенности.
- •Вопрос 13 Полиморфизм как концепция ооп.
- •Вопрос 14 Потеря и восстановление информации о типе. Операторы is и as.
- •Вопрос 15 Множественное наследование. Интерфейсы область применения. Синтаксический блок.
- •Вопрос 16 Делегаты. Область применения. Синтаксический блок.
- •Вопрос 17 Групповые делегаты. Область применения. Особенности синтаксиса.
- •Вопрос 18 События. Область применения. Синтаксический блок.
- •Вопрос 19 Исключения. Область применения синтаксический блок.
- •Вопрос 20 Потоки данных и файловый ввод-вывод. Виды файлов.
- •Вопрос 21 Класс fileinfo. Обзор элементов класса.
- •Вопрос 22 Классы StreamReader и StreamWriter. Обзор элементов класса.
- •Вопрос 23 Класс List. Особенности применения. Методы и свойства класса.
- •Вопрос 24 Класс StringBuilder. Особенности применения и методы.
- •Вопрос 25 Бинарный ввод и вывод при помощи класса FileStream.
- •Вопрос 26 Форма как базовый элемент графического интерфейса. Заголовок, первоначальное размещение, свойства BackColor, ForeColor, Font; Cursor; BackGroundImage.
- •Вопрос 27 Форма как базовый элемент графического интерфейса. Рамка для формы. Кнопки изменения размеров формы. Прозрачность.
- •Вопрос 28 Передача фокуса ввода на форме. Свойства TabStop TabIndex.
- •Вопрос 29 Текстовые поля. Элемент управления Label и TextBox. Сравнительный анализ.
- •Вопрос 30 Элемент управления MenuStrip.
- •Вопрос 33
- •Вопрос 35 Элементы управления NumericUpDown и DomainUpDown характеристика и сравнительный анализ.
- •Вопрос 36 Вложенные элементы управления(контейнеры) TabControl и GroupBox. Применение элементов управления GroupBox и Panel
- •Применение элемента управления TabControl
- •Вопрос 37 Стыковка и фиксация элементов управления. Свойства Anchor и Dock.
- •Вопрос 38 Методы формы. Show, ShowDialog, Activate, Hide, Close. Методы Show и ShowDialog
- •Метод Activate
- •Метод Hide
- •Метод Close
- •Вопрос 42 Оповещение пользователя об ошибках ввода ErrorProvider.
Вопрос 1 Классы обзор элементов класса.
Классы и структуры — это, по сути, шаблоны, по которым можно создавать объекты. Каждый объект содержит данные и методы, манипулирующие этими данными. Класс определяет, то какие данные и какую функциональность может иметь каждый конкретный объект (называемый экземпляром) этого класса.
Структуры отличаются от классов тем, как они сохраняются в памяти и как к ним осуществляется доступ (классы — это ссылочные типы, размещаемые в куче, структуры — типы значений, размещаемые в стеке), и некоторыми свойствами (например, структуры не поддерживают наследование). Из соображений производительности легче использовать структуры для небольших типов данных. В отношении синтаксиса структуры очень похожи на классы. Главное отличие состоит в том, что в их объявлении используется ключевое слово struct вместо class.
При создании, как классов, так и структур используется ключевое слово new для объявления экземпляра. В результате объект создается и инициализируется.
Класс — это абстракция (реальная или концептуальная) объекта, принадлежащего какой-либо предметной области. Один шаблон класса можно использовать для создания нескольких объектов (экземпляров класса), которые обладают свойствами, определенными в классе.
class <Идентификатор_класса> {
<Переменные_экземпляра>
<Методы>
}
Элементы класса являются языковыми конструкциями, составляющими тело класса. К примеру, переменные и методы экземпляра представляют собой два фундаментальных элемента класса. Однако классы настолько разнообразны, что С# содержит и несколько других элементов, придающих классу гибкость и расширяющих его возможности по взаимодействию с другими классами программы.
Обзор элементов класса.
В синтаксическом блоке представлен синтаксис, определения класса и описаны элементы, которые можно включать в определение класса.
Определение_класса::= <Данные члены> <Вложенные_типы>
class <Идентификатор_класса> :=<Переменные-члены> := <Вложенные_классы>
{ :=<Константы> := <Вложенные_структуры>
<Члены_класса> := <События> := <Вложенные_перечисления>
Где <Функции-члены>
<Члены__класса> := <Методы>
:= <Данные-члены> := <Конструкторы>
:= <Функции-члены> := <Деструкторы>
:= <Вложенные_типы> := <Свойства>
:= <Индексаторы>
:= <Операции>
В первых строках отображен уже знакомый синтаксис: ключевое слово class, ими (идентификатор) класса и фигурные скобки, формирующие тело класса. Элементы класса можно разделить на три широкие категории:
данные-члены,
функции-члены;
вложенные типы.
Данные-члены состоят из переменных-членов, констант и событий.
Переменные-члены (называемые также полями) используются для представления данных. Такая переменная может принадлежать или конкретному экземпляру (объекту) класса — в этом случае она называется переменной экземпляра, или самому классу — тогда она называется статической (объявленной static) переменной (или переменной класса). Напомним, что статический метод принадлежит классу, а не объекту (и вызывается для класса). То же самое справедливо и для статической переменной.
Переменная-член может быть объявлена только для чтения (с ключевым словом readonly). Такие переменные тесно связаны с константами-членами, но существует важное различие — значения последних устанавливаются в программе в процессе компиляции и существуют на протяжении ее исполнения. А значения readonly переменных-членов присваиваются им при создании объекта, и поэтому существуют, пока существует объект.
События объявляются подобно переменным-членам, но используются по-другому. При щелчке на кнопке (к примеру, ОК) в графическом пользовательском интерфейсе (GUI) соответствующий объект в программе генерирует (или возбуждает) событие (скажем, OKButtonClick), по которому определенная часть программы реагирует на действие пользователя. О приложении такого типа говорят, что оно управляется событиями, поскольку его следующее действие зависит от генерируемого события. Здесь уже неприменимо понятие программы, исполняющейся в той последовательности, в которой написаны ее операторы.
Функции-члены могут быть методами, конструкторами, деструкторами, свойствами индексаторами и операциями:
Метод — уже знакомая конструкция, которая, тем не менее, обладает многими еще неизученными свойствами.
Конструктор экземпляра, класса представляет собой метод, запускающийся по ключевому слову new. Он используется для инициализации переменных и других операциях при создании объекта.
Деструктор (называемый также завершающим методом) — известно объекты создаются и размещаются в определенной области памяти, где хранятся значения их переменных экземпляра и другие данные. Когда объект становится ненужным программе, занимаемую им память следует освободить для других объектов (иначе программа быстро начнет испытывать дефицит памяти). Деструктор, подобно своему собрату-конструктору, может содержать набор операторов, которые вызываются средой исполнения..
Свойства. Доступ к свойствам осуществляется так же, как к переменным-членам. Различие состоит в том, что свойство содержит операторы, которые исполняются подобно операторам метода, когда происходит обращение к нему. Они часто используются вместо аксессоров и мутаторов для доступа к закрытым переменным, поддерживая, таким образом, принцип инкапсуляции.
Индексаторы используются с классами, представляющими массивы. Так же, как свойства обеспечивают удобный доступ к отдельным переменным членам, индексаторы выполняют эту функцию для массивов, размещенных внутри классов.
Операции. Иногда имеет смысл (для повышения читаемости кода) объединить два объекта с помощью операции. Например, можно написать оператор наподобие totalTime = myTime + yourTime;, где все три переменных — объекты класса Timelnterval. Для достижения такой функциональности в классы включают операции-члены, которые задают набор команд, исполняющийся при объединении объектов в выражении с данной операцией. Этот процесс называют перегрузкой операции.
Вложенные типы — это классы, структуры, перечисления и интерфейсы, определенные в пределах тела класса. Они позволяют скрыть типы, которые используются только пределах класса. Подобно тому, как вспомогательные методы объявляются закрытыми для уменьшения внешней сложности класса, вложенные типы помогают снизить количество классов, необходимых для сборки программы.