- •Сборка (assembly) и ее структура в .Net технологии. Основные части и их назначение.
- •Последовательность создания и выполнения программ на платформе .Net.
- •Сборка (assembly) и ее структура в .Net технологии. Основные части и их назначение.
- •Последовательность создания и выполнения программ на платформе .Net.
- •Структура программы на языке c#.
- •Описания классов на языке c#.
- •Описание и использование методов класса. Перегрузка методов класса.
- •Основные классы - коллекции. Назначение и использование.
- •Базовый класс System.Object. Назначение, методы.
- •Операции языка c#. Перегрузка операций в создаваемых классах.
- •Описание наследования классов в c#.
- •Интерфейсы. Назначение, описание и использование.
- •Делегаты. Назначение, описание и использование.
- •События классов. Описание событий в классе и их использование в классах пользователях.
- •Класс Form для создания графического интерфейса.
- •Элементы управления. Назначение, основные свойства и методы.
- •Обработка событий от элементов управления формы. Сигнатура. Задание метода – обработчика события. Создание метода – обработчика события.
- •16. Событие перерисовки формы – Paint. Когда возникают, как обрабатывается.
- •Класс Graphics. Назначение и использование. Основные методы рисования.
- •Программирование пользовательских диалогов.
- •Назначение и основные классы технологии ado.Net.
Описание наследования классов в c#.
Один класс может быть производным от другого класса (базового).
Класс может быть наследником только одного базового класса
Производный класс может использовать поля, свойства и методы базового класса (и классов для которых он является производным).
Все классы наследуются от базового класса System.Object, который содержит
конструктор по умолчанию new()
ToString();
GetType();
GetHashCode();
Equals().
Два класса, которые могут быть связаны с помощью отношения наследования должны пройти тест “является видом …” ("is a" test.)
Например:
Треугольник является видом фигуры
Руководитель является видом служащего
Легковой автомобиль является видом транспортного средства
Например нельзя наследовать:
велосипед не является видом колеса
Объект производного класса имеет доступ ко всем:
Открытым (public) свойствам и методам базового класса
Защищенным (protected) свойствам и методам базового класса
Методам переопределенным (override) в производном классе
Свойствам и методам скрытым (new) в производном классе
Любым свойствам и методам производного класса
Конструктор производного класса:
Конструктор производного класса может вызывать на выполнение требуемый конструктор базового класса.
рublic Circle (int a, int b, int r) : base(a, b)
{
base._x = 0; // обращение в переменной // базового класса
}
Изменение методов в производном классе:
Если в производном классе есть метод с именем и сигнатурой идентичной методу базового класса, то он может:
скрывать (shadowing) метод базового класса, т.е. работать только с использованием ссылки производного типа
заменять (переопределять, overriding) метод базового класса, т.е. работать с ссылками и производного и базового типа
Интерфейсы. Назначение, описание и использование.
Интерфейсы это еще один пользовательский тип.
Интерфейсы позволяют описывать некоторые желательные свойства и методы, которыми должны обладать разные классы.
Особенности интерфейсов:
можно описывать переменные такого типа, ссылочный тип;
нельзя создавать объекты (экземпляры) такого типа;
включает набор абстрактных открытых (public) методов.
То, что интерфейс не может иметь реализации, означает, что все его методы и свойства являются абстрактными.
Интерфейс описывает поведение, которое конкретный класс или структура может выбрать для реализации.
Класс (или структура) может при необходимости поддерживать много интерфейсов, тем самым поддерживая множество стилей поведения.
Интерфейс (interface) во много аналогичен именованному набору абстрактных методов.
Интерфейс – это открытый контракт между поставщиком услуг (методов) и потребителем этих услуг.
Интерфейс позволяет организовать свободную связь между клиентом и объектом (т.е. можно указать, что требуемый объект поддерживает некоторый интерфейс).
Интерфейс представляет собой полностью абстрактный класс, который может включать только открытые абстрактные
методы,
свойства,
индексаторы
события.
Описание интерфейса:
<режим доступа> interface <имя_интерфейса>
{
<тип_результата> имя_метода1(<параметры>);
//
< тип_результата> имя_методаN(<параметры>);
}
Работа с интерфейсом:
Описание интерфейса - Методы интерфейса объявляются без указания модификаторов доступа.
interface IScalable
{
void ScaleX(float factor);
void ScaleY(float factor);
}
Реализация интерфейса (класс Map реализует – поддерживает интерфейс IScalable) – override не указывается
class Map : IScalable
{
public void ScaleX(float factor) {. . .};
public void ScaleY(float factor) {. . .};
}
Использование интерфейса
Map map1 = new Map( );
map1.ScaleX(100f);
map1.ScaleY(200f);
IScale intrf;
intrf = (IScale) map1; // преобразование к интерфейсу
intrf.ScaleX(200f);
