db.ByBlockLinetype или же Us.GetLinetypeByBlockId(db) ?

Автор Тема: db.ByBlockLinetype или же Us.GetLinetypeByBlockId(db) ?  (Прочитано 3399 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Возможно это очередной случай аля "так исторически сложилось и уже никто не помнит истиных причин", но на всякий случай спрошу:
Код - 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. аналогичная ситуация наблюдается и для ряда др. свойств.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: db.ByBlockLinetype или же Us.GetLinetypeByBlockId(db) ?
« Ответ #1 : 16-05-2014, 14:10:25 »
Вопрос: зачем два варианта получения?
Такое не редко в AutoCAD API (особенно в ObjectARX). Возможно просто генерировали обертки и получили два варианта, выполняющих одно и тоже. Например, есть глобальная функция в ObjectARX и аналогичный ей метод в одном из классов.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: db.ByBlockLinetype или же Us.GetLinetypeByBlockId(db) ?
« Ответ #2 : 16-05-2014, 14:45:27 »
Т.е. двойственность обусловлена вовсе не тем, что решили причесать API и в последствии один из способов (более старый) будет удалён из библиотек? Разницы, как я понимаю, между ними нет, в отличие от других, в чём-то похожих ситуаций? На всякий случай уточняю...

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: db.ByBlockLinetype или же Us.GetLinetypeByBlockId(db) ?
« Ответ #3 : 16-05-2014, 16:04:43 »
Будет ли удален один из этих методов в будущем никто сейчас не скажет. Они должны делать одно и тоже и возвращать один и тот же результат.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение