Особенности C# Индексаторы, события, частичные методы, расширяющие методы, сборщик мусора DraggonZ.

Презентация:



Advertisements
Похожие презентации
©Павловская Т.А. (СПбГУ ИТМО) Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
Advertisements

Основы ООП и C# Работа с объектами и классами. Классы Класс специальный тип данных для описания объектов. Он определяет данные и поведение типа. Определение.
Высокоуровневые методы информатики и программирования Лекция 9 Делегаты.
Высокоуровневые методы информатики и программирования Лекция 10 События.
Обобщения ( шаблоны ) Лекция 5. Тип, метод или интерфейс параметризованный другим типом Обобщенный тип Тип ( класс, структура ), который параметризован.
Интерфейсы Обобщения ( шаблоны ) Лекция 4. Интерфейсы Обобщения.
ОБЪЕКТНО- ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ (ООП) 1.
Классы в С#. Перечисления С# Перечисление задает конечное множество возможных значений, которые могут получать объекты класса перечисление. [атрибуты][модификаторы]
Обобщения ( generics) Обобщения – это классы, структуры, интерфейсы и методы, в которых некоторые типы сами являются параметрами. Эти типы перечисляются.
Интерфейсы Лекция 4. Реализуйте очередь в виде списка, содержащую комплексные числа Реализуйте методы void Enqueue(Complex с ) – помещает число в очередь.
Классы и объекты Лекция 2. Классификатор Класс Интерфейс Экземпляр класса Ассоциация Квалификатор Класс ассоциации Обобщение Украшение Тип данных Пакеты.
Полиморфизм. Полиморфизм – это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
ИТЕРАТОРЫ И LINQ Лекция 1. Интерфейс IEnumerable и IEnumerator Любая коллекция реализует интерфейс IEnumerable. public interface IEnumerable : IEnumerable.
СОБЫТИЯ Лекция 1. Взаимодействие объектов 2 Взаимодействие между объектами A и B можно организовать двумя способами. 1.Объект A вызывает метод объекта.
ДЕЛЕГАТЫ Лекция 7 1. Зачем нужны делегаты 2 И данные, и код располагаются в памяти компьютера по определенным адресам. Передача адресов данных в C# происходит.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 7 Методы как средство реализации операций Лекции читает кандидат технических наук.
Перегрузка операторов x = a + b результат 1-й операнд2-й операнд оператор По количеству операндов операторы делятся на: унарные (один операнд) бинарные.
Ресурсы WPF Два типа ресурсов WPF: объектные ресурсы (object resource) – определенный.NET-объект, который можно использовать многократно; ресурсы сборки.
События (events) События позволяют классу или объекту уведомлять другие классы или объекты о возникновении каких-либо ситуаций. Событие представляет собой.
Время жизни объектов Лекция 12. При запуске exe файла Windows анализирует заголовок exe файла для определения разрядности адресного пространства 32 или.
Транксрипт:

Особенности C# Индексаторы, события, частичные методы, расширяющие методы, сборщик мусора DraggonZ

Индексаторы

Индексатор позволяет индексировать элемент подобно массиву

Синтаксис тип_элемента this[int индекс] { // Аксессор для получения данных, get { // Возврат значения, которое определяет индекс. } // Аксессор для установки данных, set { // Установка значения, которое определяет индекс. }

Частичные типы

Использует ключевое слово partial Применяется для разнесения одного класса, интерфейса, структуры по разным файлам

Расширяющие методы

Расширяющие методы позволяют существующим типам получать новую функциональность без необходимости непосредственного изменения расширяемого типа

Синтаксис static class MyExtensions { public static возвращаемое_значение ExtensionMethod(this тип_объекта объект,…) { //Определение расширяющего метода }

Расширяющие методы являются синонимами обычных статических методов

Сборщик мусора

Сборщик мусора удаляет объект из кучи тогда, когда тот становится недостижимым ни в одной части программного кода

Размещение объекта в управляемой куче

В случае нехватки в управляемой куче пространства для размещения запрашиваемого объекта начинает выполняться сборка мусора

Сборщик мусора использует две отдельных кучи, одна из которых предназначена специально для хранения очень больших объектов

Каждый объект в куче относится к одному из перечисленных ниже поколений: поколение 0: новые объекты; поколение 1: объекты, пережившие 1 сборку мусора; поколение 2: объекты, пережившие более 1 сборки мусора.

Системный класс System.GC позволяет программно взаимодействовать со сборщиком мусора

События

События строятся с помощью ключевого слова event

События используются в качестве сокращения, избавляющего от необходимости строить специальные методы для добавления и удаления методов в списке вызовов делегата

Синтаксис class MyClass { public delegate void MyDelegate(int x); public event MyDelegate MyEvent; }

Рекомендуемый шаблон делегата, лежащего в основе события void обработчик(object отправитель, EventArgs e) { //...

Для управления списком обработчиков событий служит расширенная форма оператора event, позволяющая использовать аксессоры событий

event делегат_события имя_события { add { // Код добавления события в цепочку событий. } remove { // Код удаления события из цепочки событий. } }

Учитывая, что очень много специальных делегатов принимают объект в первом параметре и наследников EventArgs во втором, часто используется обобщенный тип EventHandler, где Т специальный тип-наследник EventArgs.

Спасибо!