Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Андрей Бушман от 16-05-2014, 12:35:58

Название: db.ByBlockLinetype или же Us.GetLinetypeByBlockId(db) ?
Отправлено: Андрей Бушман от 16-05-2014, 12:35:58
Возможно это очередной случай аля "так исторически сложилось и уже никто не помнит истиных причин (http://adn-cis.org/forum/index.php?topic=733.msg2723#msg2723)", но на всякий случай спрошу:
Код - C# [Выбрать]
  1. using Db = Autodesk.AutoCAD.DatabaseServices;
  2. using Us = Autodesk.AutoCAD.DatabaseServices.SymbolUtilityServices;
  3. ...
  4. // можно так:
  5. Db.ObjectId id = db.ByBlockLinetype;
  6. // но можно и так:
  7. Db.ObjectId id = Us.GetLinetypeByBlockId(db); // db  - Database instance.
Вопрос: зачем два варианта получения? Причём первый вариант даже явно быстрее записать в коде, чем второй.

P.S. аналогичная ситуация наблюдается и для ряда др. свойств.
Название: Re: db.ByBlockLinetype или же Us.GetLinetypeByBlockId(db) ?
Отправлено: Александр Ривилис от 16-05-2014, 14:10:25
Вопрос: зачем два варианта получения?
Такое не редко в AutoCAD API (особенно в ObjectARX). Возможно просто генерировали обертки и получили два варианта, выполняющих одно и тоже. Например, есть глобальная функция в ObjectARX и аналогичный ей метод в одном из классов.
Название: Re: db.ByBlockLinetype или же Us.GetLinetypeByBlockId(db) ?
Отправлено: Андрей Бушман от 16-05-2014, 14:45:27
Т.е. двойственность обусловлена вовсе не тем, что решили причесать API и в последствии один из способов (более старый) будет удалён из библиотек? Разницы, как я понимаю, между ними нет, в отличие от других, в чём-то похожих (http://adn-cis.org/forum/index.php?topic=733.msg2719#msg2719) ситуаций? На всякий случай уточняю...
Название: Re: db.ByBlockLinetype или же Us.GetLinetypeByBlockId(db) ?
Отправлено: Александр Ривилис от 16-05-2014, 16:04:43
Будет ли удален один из этих методов в будущем никто сейчас не скажет. Они должны делать одно и тоже и возвращать один и тот же результат.