как передать объект в метод

Автор Тема: как передать объект в метод  (Прочитано 11920 раз)

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

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 805
  • Карма: 166
    • Мои плагины к Автокаду
Re: как передать объект в метод
« Ответ #15 : 16-09-2018, 23:07:44 »
Да
ОК. Как бы запомнить... Тогда пункт 1 чисто про оформление кода. using не нужен

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: как передать объект в метод
« Ответ #16 : 16-09-2018, 23:14:06 »
ОК. Как бы запомнить...
Это просто: .GetObject(...) - это транзакция, а .Open(...) - это без транзакции.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн simson43Автор темы

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
Re: как передать объект в метод
« Ответ #17 : 16-09-2018, 23:18:56 »
в итоге... у меня корректно написано в плане транзакций?
только оформление поправить?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: как передать объект в метод
« Ответ #18 : 16-09-2018, 23:21:57 »
у меня корректно написано в плане транзакций?
Корректно, но некрасиво. Если уж используешь tr.GetObject(...) в одном месте, то и в других используй его, а не objId.GetObject(...)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн simson43Автор темы

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
Re: как передать объект в метод
« Ответ #19 : 16-09-2018, 23:25:48 »
т е по факту obid.getobject и tr.getobject(obid) это одно и тоже просто вопрос красоты?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: как передать объект в метод
« Ответ #20 : 16-09-2018, 23:27:53 »
т е по факту obid.getobject и tr.getobject(obid) это одно и тоже просто вопрос красоты?
В твоём коде - одно и тоже. В общем случае нет, если запущено несколько транзакций.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн simson43Автор темы

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
Re: как передать объект в метод
« Ответ #21 : 16-09-2018, 23:28:26 »
Да именно так. Эту фичу только в последней студии добавили к оператору is .
т е "is mleader ml" это еще и объявление переменной как выноски?
предварительно не нужно объявлять?

Оффлайн simson43Автор темы

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
Re: как передать объект в метод
« Ответ #22 : 16-09-2018, 23:30:29 »
а не затруднит ли вас немножко подробнее?
т е если много транзакция.. то?
tr.getobject я беру объект из какой то конкретной транзакции а obid.getobject.. ?
из той транзакции в которой нахожусь?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: как передать объект в метод
« Ответ #23 : 16-09-2018, 23:30:43 »
т е "is mleader ml" это еще и объявление переменной как выноски?
Да. Только не mleader, а MLeader - C# регистрозависимый язык.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: как передать объект в метод
« Ответ #24 : 16-09-2018, 23:34:49 »
tr.getoblect я беру объект из какой то конкретной транзакции а obid.getobject.. ?
из той транзакции в которой нахожусь?
objId.GetObject берёт из так называемой TopTransaction - самой последней запущенной в данной базе данных (Database) активной транзакции.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн simson43Автор темы

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
Re: как передать объект в метод
« Ответ #25 : 16-09-2018, 23:38:08 »
это я и имел ввиду.
Спасибо всем большое за комментарии. Теперь я знаю еще чуточку больше!

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: как передать объект в метод
« Ответ #26 : 17-09-2018, 14:08:38 »
т е по факту obid.getobject и tr.getobject(obid) это одно и тоже просто вопрос красоты?
В будущем возможно понадобится заменить Transaction на OpenCloseTransaction. И если первая "понимает" ObjectId.GetObject, то вторая - нет. И при замене одного на другое будет фаталить. Так что, в качестве совета: лучше явно использовать метод транзакции.

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
Re: как передать объект в метод
« Ответ #27 : 17-09-2018, 14:44:42 »
Так что, в качестве совета: лучше явно использовать метод транзакции.
Плюсую. В ряде случаев попытка открыть объект через ObjectId.GetObject(TopTransaction) приводила к фатальным ошибкам, через Transaction проблем не было. Возможно имеют место конфликты повторного открытия объекта, или попытки открыть с другими правами в TopTransaction, которые решаются использованием Transaction.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: как передать объект в метод
« Ответ #28 : 17-09-2018, 16:35:26 »
В ряде случаев попытка открыть объект через ObjectId.GetObject(TopTransaction) приводила к фатальным ошибкам, через Transaction проблем не было
Может не было ни одной транзакции в данном документе/базе?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн simson43Автор темы

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
Re: как передать объект в метод
« Ответ #29 : 17-09-2018, 18:50:47 »
Так что, в качестве совета
Ваши советы очень ценны! Активно впитываю. Благодарю)
Ps: ваши всм этого сообщества