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

Особенности C#

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Особенности C#

Особенности C#

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

DraggonZ

Page 2: Особенности C#

Индексаторы

Page 3: Особенности C#

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

подобно массиву

Page 4: Особенности C#

Синтаксис

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

Page 5: Особенности C#

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

Page 6: Особенности C#

Использует ключевое слово partial

Применяется для разнесения одного класса, интерфейса,

структуры по разным файлам

Page 7: Особенности C#

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

Page 8: Особенности C#

Расширяющие методы позволяют существующим

типам получать новую функциональность без

необходимости непосредственного изменения

расширяемого типа

Page 9: Особенности C#

Синтаксис

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

Page 10: Особенности C#

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

Page 11: Особенности C#

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

Page 12: Особенности C#

Сборщик мусора удаляет объект из кучи тогда, когда

тот становится недостижимым ни в одной части программного

кода

Page 13: Особенности C#

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

Page 14: Особенности C#

В случае нехватки в управляемой куче пространства для размещения

запрашиваемого объекта начинает выполняться

сборка мусора

Page 15: Особенности C#

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

предназначена специально для хранения очень больших объектов

Page 16: Особенности C#

Каждый объект в куче относится к одному из перечисленных ниже поколений:

поколение 0: новые объекты;поколение 1: объекты, пережившие 1 сборку мусора;поколение 2: объекты, пережившие более 1 сборки мусора.

Page 17: Особенности C#

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

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

Page 18: Особенности C#

События

Page 19: Особенности C#

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

Page 20: Особенности C#

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

Page 21: Особенности C#

Синтаксис

class MyClass { public delegate void MyDelegate(int x); public event MyDelegate MyEvent; }

Page 22: Особенности C#

Рекомендуемый шаблон делегата, лежащего в основе события

void обработчик(object отправитель, EventArgs e) { // ...

Page 23: Особенности C#

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

Page 24: Особенности C#

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

Page 25: Особенности C#

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

Page 26: Особенности C#

Спасибо!