Расширенный RTTI в Delphi 2010 предлагают способ перечислить определенный Класс и Рекордных Помощников во время выполнения?
Насколько я знаю, что Delphi не показывает подсказку или предупреждение, когда больше чем один помощник класса определяется для класса, обнаружение помощника класса могло бы быть полезной стандартной программой в 'гарантии качества'.
p.s., конечно, я знаю, что никогда не должен использовать сторонние компоненты или библиотеки без исходного кода, который помог бы grep помощникам класса.
Поскольку помощники класса применяются только к классу в зависимости от того, какой помощник является «ближайшим» по области видимости, класс просто не может знать, что помощник существует. Например, вы можете создать помощник класса в своем модуле, чтобы «помогать» классу из другого модуля, для которого у вас нет источника. Класс в другом модуле не имеет ни малейшего представления о помощниках. Если бы у него было это знание, то его пришлось бы перекомпилировать, чтобы учесть это ... что приводит к следующей проблеме;
Учтите это: у вас может быть класс, объявленный в одном общем модуле, который используется многими другие единицы по всему вашему приложению. В каждом из этих модулей вы объявляете нового помощника для этого общего класса с различными методами и «вспомогательными» функциями. Поскольку каждый модуль ничего не знает о других модулях, которые также объявляют своего помощника, по замыслу нет способа каким-либо образом объединить всех помощников. Теперь представьте, что эта общая единица теперь находится за границей предварительно скомпилированного пакета.
Помощники класса - соблазнительные маленькие язычники. Они обещают славу и богатство, но слишком часто они обрушиваются на смерть и разрушение ... спустя долгое время после того, как вы предались их уловкам.
По этой причине их введение в язык решило очень специфические проблемы, а именно способность «появляться» для внедрения функциональности в существующую структуру. Пока вы придерживаетесь правила «только один помощник» и не отклоняетесь от этого пути, вы можете выйти относительно невредимым.В любом случае, чтобы пройти через эти воды, вам понадобится объединенная сила духа кишечника Беовульфа, Леонидаса (Спарты) и Фродо Бэггинса.
Учитывая, что здесь, в команде RAD Studio, мы не хотим использовать помощник класса там, где его можно избежать. И когда мы их используем, соответствующая фаланга формируется еще до того, как мы начинаем ...
Здесь есть драконы ...