Содержание
- 2. Интерфейсы ICloneable IComparable и IComparer IEnumerator и IEnumirable IDisposible
- 3. ICloneable Поддерживает копирование, который создает новый экземпляр класса с тем же значением, что существующий экземпляр. Перегружаемый
- 4. Зачем он нужен? Пример:
- 5. Зачем он нужен? В данном случае объекты cl1 и cl2 будут указывать на один и тот
- 6. Реализация
- 7. Можно проще Для сокращения кода копирования мы можем использовать специальный метод MemberwiseClone(), который возвращает копию объекта
- 8. Недостаток Этот метод реализует поверхностное (неглубокое) копирование. Если в классе есть поля-объекты от других классов, то
- 9. Добавим класс
- 10. Что получаем
- 11. Глубокое копирование
- 12. IComparable
- 13. IComparable Однако метод Sort по умолчанию работает только для наборов примитивных типов, как int или string.
- 14. Возвращаемое значение Меньше нуля. Значит, текущий объект должен находиться перед объектом, который передается в качестве параметра
- 15. Реализация
- 16. Еще вариант
- 17. IComparer Кроме интерфейса IComparable имеется интерфейс IComparer int Compare(object o1, object o2); Метод Compare предназначен для
- 18. IComparer если первый объект больше второго, то возвращается число больше 0, если меньше - то число
- 19. Реализация
- 20. IEnumerable Интерфейс IEnumerable имеет метод, возвращающий ссылку на другой интерфейс - перечислитель: public interface IEnumerable {
- 21. IEnumerator Интерфейс IEnumerator определяет функционал для перебора внутренних объектов в контейнере.
- 22. IEnumerator public interface IEnumerator { bool MoveNext(); // перемещение на одну позицию вперед в контейнере элементов
- 23. Реализация
- 24. Реализация
- 25. Применение
- 26. IDispolable Предоставляет механизм для освобождения управляемых и неуправляемых ресурсов. void Dispose()
- 27. Ресурсы Существуют два различных подхода, которые можно применять для создания класса, способного производить очистку и освобождать
- 28. Ресурсы Первый подход заключается в переопределении метода System.Object.Finalize() и позволяет гарантировать то, что объект будет очищать
- 29. Ресурсы торой подход предусматривает реализацию интерфейса IDisposable и позволяет обеспечить пользователя объекта возможностью очищать объект сразу
- 30. Ресурсы Если пользователь объекта не забыл вызвать метод Dispose(), можно проинформировать сборщик мусора о пропуске финализации,
- 31. Виды ресурсов Неуправляемые ресурсы - это разнообразные файловые хэндлы, оконные, всякие объекты синхронизации, соединения с базой
- 32. Сборщик мусора Сборщик мусора автоматически освобождает память, выделенную для управляемого объекта, если этот объект больше не
- 33. IDispolable Использование метода Dispose, позволяет явно освобождать неуправляемые ресурсы вместе со сборщиком мусора. Пользователь объекта может
- 34. IDispolable
- 35. IDispolable Если есть подключение к файлу или к БД, которое «живет» на всем протяжении работы объекта
- 37. Скачать презентацию