Social Icons

пятница, 29 июля 2011 г.

Используем дженерики в Delphi! - Часть 3 (Приложение)

[Содержание]
[Часть 1 - Введение в дженерики] [Часть 2 - Системные классы] [Часть 3 - Приложение]

  1. Заключение
  2. Исходники
  3. Ссылки

1. Заключение
В материале были кратко рассмотрены дженерики и их основные возможности в Delphi, стандартные классы языка и примеры работы с ними. Для дальнейшего изучения настоятельно рекомендуется пройтись по ссылкам и изучить материалы, указанные ниже. Во-первых, это позволит углубить уже полученные знания, а во-вторых, открыть для себя новые возможности, пропущенные в настоящем материале сознательно для облегчения "стартового" понимания.
Общий совет один - старайтесь максимально использовать дженерики, используя их преимущества. Удачи!

2. Исходники
В данном разделе приведены сслыки на исходные коды примеров, которые приводились в статье (с некоторыми изменениями). Вы можете скачать их и использовать по своему усмотрению.
Примечание: если у читателей будут интересные примеры использования дженериков, я буду рад их разместить в этом разделе, сохраняя ссылку на автора.
Класс(ы) Описание Ссылка
- Реализация обобщенного класса Скачать
- Реализация обобщенного метода и записи Скачать
TArray Сортировка и поиск в одномерном целочисленном массиве Скачать
Сортировка двумерного массива Скачать
TDictionary<T> и TObjectDictionary<T> Работа со словарем Скачать
TList<T> и TObjectList<T> Работа со списком Скачать
TStack<T> и TObjectStack<T> Работа со стеком Скачать
TQueue<T> и TObjectQueue<T> Работа со очередью Скачать
Скачать все примеры целиком

3. Ссылки
  1. Статья в PDF
  2. Дженерики
    • Справочная система Delphi: обзор дженериков (англ.), Generics.Defaults (англ.), Generics.Collections (англ.)
    • М. Кэнту Delphi Handbook 2009, раздел о дженериках (англ.)
    • Обобщённое программирование (generics) в Delphi 2009 для Win32 (рус., англ.)
    • Сравнивая дженерики в C#, C++ и Delphi(Win32) (рус., англ.)
  3. Другое
[Часть 1 - Введение в дженерики] [Часть 2 - Системные классы] [Часть 3 - Приложение] [Содержание]

8 комментариев:

  1. А ты чем и как PDF-ку создавал?

    ОтветитьУдалить
  2. Отписал тебе на почту ;)

    ОтветитьУдалить
  3. Даже и не знаю, к какой части поставить плюсик (звёздочку) на DelphiFeeds.. Поставлю к последней, чтобы было по ближе к народу :)

    ОтветитьУдалить
  4. По ссылке на исходник TDictionary и TObjectDictionary лежит TList и TObjectList. В итоге скачал все целиком. Спасибо!

    ОтветитьУдалить
  5. Можно добавить к посту, что следует с осторожностью пользоваться дженериками, особенно в более старых версиях Delphi массивное использование в больших продуктах может привести к различным Internal error при компиляции. В разрабатываемом нами сейчас продукте, по этой причине мы вынуждены были отказаться от версий старее чем XE, хотя и в более поздних переодически натыкаемся на проблемы. Так же с осторожностью надо пользоваться примерами Embarcadero по использованию компараторов. Например непосредственное создание наследника TComparer<>, в конструкторе TList.Create или методе TList.Sort приведет к утечке памяти, из-за модификатора const несмотря на то, что TComparer наследник TInterfacedObject и при правильном использовании должен сам почиститься. Пример такого использования можно увидеть в Embarcadero Code Samples:
    http://docwiki.embarcadero.com/CodeExamples/XE6/en/Generics_Defaults_TCustomComparer_(Delphi)

    ОтветитьУдалить

Поделитесь с друзьями!

 

Подписчики

Статистика