'

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

Понравилась презентация – покажи это...





Слайд 0

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


Слайд 1

Индексаторы


Слайд 2

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


Слайд 3

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


Слайд 4

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


Слайд 5

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


Слайд 6

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


Слайд 7

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


Слайд 8

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


Слайд 9

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


Слайд 10

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


Слайд 11

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


Слайд 12

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


Слайд 13

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


Слайд 14

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


Слайд 15

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


Слайд 16

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


Слайд 17

События


Слайд 18

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


Слайд 19

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


Слайд 20

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


Слайд 21

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


Слайд 22

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


Слайд 23

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


Слайд 24

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


Слайд 25

Спасибо!


×

HTML:





Ссылка: