Преимущества Point3dCollection

Автор Тема: Преимущества Point3dCollection  (Прочитано 7821 раз)

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

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

  • ADN OPEN
  • ***
  • Сообщений: 162
  • Карма: 6
Преимущества Point3dCollection
« : 15-12-2017, 20:49:55 »
В чём преимущества Point3dCollection перед ObservableCollection<Point3d>? какие то методы хорошие? Место? Скорость?

Отмечено как Решение RevitTormentor 15-12-2017, 21:07:07

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Преимущества Point3dCollection
« Ответ #1 : 15-12-2017, 21:04:50 »
Не думаю, что есть какие-то преимущества кроме тех, что некоторые методы AutoCAD .NET API работают только с Point3dCollection, т.е. из любой другой коллекции придётся преобразовывать в Point3dCollection.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Преимущества Point3dCollection
« Ответ #2 : 18-12-2017, 15:35:48 »
А ObservableCollection - это вообще-то коллекция, в которой реализовано уведомление об изменении коллекции. В основном используется в паттерне MVVM. Поэтому сравнение вообще некорректное!

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Re: Преимущества Point3dCollection
« Ответ #3 : 18-12-2017, 16:29:35 »
Если мне память не изменяет, то где-то было уже здесь на форуме обсуждение этих встроенных коллекций: DBObjectCollection, Point3dCollection, ObjectIdCollection и т.п. И там пришли к выводу, что List<T> ничем не хуже, а эти коллекции - пережиток из того времени, когда в .NET не было списков.
P.S.: Вот она: http://adn-cis.org/forum/index.php?topic=1072.0
Тут про ObjectIdCollection, но, думаю, для Point3dCollection аналогично.
« Последнее редактирование: 18-12-2017, 17:19:23 от Дмитрий Загорулькин »

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

  • ADN OPEN
  • ***
  • Сообщений: 162
  • Карма: 6
Re: Преимущества Point3dCollection
« Ответ #4 : 18-12-2017, 17:20:53 »
В основном используется в паттерне MVVM. Поэтому сравнение вообще некорректное!
все таки отвечу. Я очень редко использую этот паттерн. Но observareblycollection использую очень часто. Именно из за обновлений. В чем некорректность сравнения?. Хотел узнать в чем разница - узнал. В каких то местах без внутренних коллекций не обойтись. Разве преимущества или недостатки только в уведомлениях?

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Re: Преимущества Point3dCollection
« Ответ #5 : 18-12-2017, 17:25:23 »
В чем некорректность сравнения?
В том, что ObservableCollection - специфический тип коллекции с возможностью отслеживания изменений. Point3dCollection таким функционалом не обладает, поэтому, и сравнение их некорректно. Если нужно отслеживание изменений, то Point3dCollection совсем никак не подойдёт. В чём тогда смысл вопроса?

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

  • ADN OPEN
  • ***
  • Сообщений: 162
  • Карма: 6
Re: Преимущества Point3dCollection
« Ответ #6 : 18-12-2017, 18:05:09 »
Так и не пойму  в чем некорректность? Вопрос: в чем преимущество? Ответ: преимуществ нет кроме работы с некоторыми методами автокада. ObservableCollection уведомляет, но не работает с некоторыми методами Автокада. Point3dCollection работает с некоторыми методами Автокада но не уведомляет. Счёт 1:1 ничья. Сравнение завершено. Можно сравнить и по другим параметрам есть нет есть нет. А как ещё тогда сравнивают? ObservableCollection с AutomatiUpdateCollection? И КамАЗ с  Окой по диаметру колеса уже не сравнить получается?

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Re: Преимущества Point3dCollection
« Ответ #7 : 18-12-2017, 18:19:59 »
И КамАЗ с  Окой по диаметру колеса уже не сравнить получается
Можно, но в чём смысл? Как правило, сравнивают на пригодность для определённой цели. Если уж переходить на метафоры, то тут уместнее сравнение лунохода с автомобилем. Вот как Вы ответите на такой вопрос: "В чём преимущества лунохода перед легковым автомобилем? Какие-то детали хорошие? Расход топлива? Скорость?". Согласитесь, что первой реакцией будет недоумение и попытка объяснить вопрошающему, что как-то не очень корректно их сравнивать, потому что сложно представить условия, когда действительно будет стоять выбор между ними. Если и так не понятно, то я уже не знаю как ещё объяснить...

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

  • ADN OPEN
  • ***
  • Сообщений: 162
  • Карма: 6
Re: Преимущества Point3dCollection
« Ответ #8 : 18-12-2017, 19:03:23 »
сложно представить условия, когда действительно будет стоять выбор между ними.
Вот тут как раз у меня и встал выбор коллекции. Какую взять? Если у point3dcollection есть преимущества да ещё и существенные в условиях использования Автокада, то я бы стал использовать эту коллекцию. Раз их нет перед observablecollection то использую observablecollection. Там где просто хранение без уведомлений List ещё проще массив. Я конечно не программист, но в моем понимании так. А что касается лунохода. Дмитрий я конечно люблю диспуты, но опять Вы не правы. По диаметру колеса я могу сравнить 14 дюймовое автомобиля с 20 дюймовым лунохода. Да запросто. Сравнение в диаметре а не в предназначении. Что больше 20 или 14 сплошь и рядом такие сравнения в жизни. Болт М16 равен или нет болту М 16 но от другого инструмента. И что:, мы их сравниваем, все схоже только сталь у второго прочнее. Сравнение: в чем преимущество второго болта перед первым? Ответ ни в чем. Только сталь прочнее. Мы можем использовать и первый болт и второй. Можем мы заменить второй болт на первый, если он от другого механизма? Пусть даже от лунохода.
Вы сравнивание луноход и автомобиль. Наверное не корректно с моей стороны было бы сравнивать Net и Autocad API  в целом, а сравнить отдельную часть, которая может выполнить нужную функцию но разными методами вполне корректно. А дальше я уже думаю надо автоматически обновлять это или нет.
Если и так не понятно, то я уже не знаю как ещё объяснить...
Тут надо спросить Александра Ривилиса. Как он то понял мой вопрос. Его ответ вполне в контексте моего вопроса, исходя из его опыта и знаний, темы форума и ветки. Как то ведь он понял, или тоже не так понял, а просто ответ совпал с моим видением ответа. Я так понял что он понял вопрос. Я понял его ответ. Все корректно вроде.

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Re: Преимущества Point3dCollection
« Ответ #9 : 18-12-2017, 19:26:55 »
Если у point3dcollection есть преимущества да ещё и существенные в условиях использования Автокада, то я бы стал использовать эту коллекцию. Раз их нет перед observablecollection то использую observablecollection.
Ну ок, дело хозяйское.
Я конечно не программист
но опять Вы не правы.
:)
Всё, я понял. Ответ Александра Наумовича Вас устроил. Раз вопросов больше нет, то и обсуждать нечего.

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Преимущества Point3dCollection
« Ответ #10 : 18-12-2017, 19:58:44 »
Я все-же вклинюсь ))
1. Посмотреть разницу между двумя коллекциями можно просто открыв справку и изучив члены. Даже описания читать не надо - в большинстве случаев по названию методов/свойств все понятно
2. Если уж так "припрет", то можно сделать свою собственную коллекцию, реализовав нужный функционал от обоих коллекций
3. Правильнее сначала решить какую задачу вы хотите реализовать, а потом уже спросить какая коллекция для этого лучше подходит (ИМХО)
4. И главный вопрос, который не даст мне спокойно спать - в каком случае (если не для окна и паттерна MVVM) можно использовать ObservableCollection??? Я, если честно, не могу придумать такую ситуацию

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

  • ADN OPEN
  • ***
  • Сообщений: 162
  • Карма: 6
Re: Преимущества Point3dCollection
« Ответ #11 : 19-12-2017, 08:43:28 »
1 наверное
2 было бы познавательно узнать как это сделать, но наверное ветка форума другая
3 вне зависимости от "внешней" задачи, задача обеих коллекций хранить коллекцию координат точек. Узнав их отличия можно уже решить какую применить. Допустим ситуация я опишу задачу которая в рамках вопроса равна 2% всего функционала. Вы например посоветуете вообще исходя из этой задачи локальной использовать List и будете правы. Но в рамках всего проекта мне это доставит большие трудности в настоящем или будущем. На мой взгляд в контексте моего конкретного затруднения узнав в чем отличия двух коллекций, я куда быстрее решу вопрос и меньше займу времени и Вашего на прочтение описания или изучения карты классов. Хотя наверное в каких то вопросах, что применить c# или c++, polyline2d или polyline3d, наверное надо подробнее. Может ошибаюсь.
4 тут наверное тоже в другой ветке по c# Вам спецы лучше ответят. Я не программист, точных названий могу не знать. То, как я использую называется вроде в контексте. При этом я использую методы buttonclick и прочую пакость.

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 624
  • Карма: 158
    • ПГСу Бложик
Re: Преимущества Point3dCollection
« Ответ #12 : 19-12-2017, 09:18:03 »
2 было бы познавательно узнать как это сделать, но наверное ветка форума другая
Посмотрите как коллекции сделаны в .NETи попробуйте сделать свою по образу и подобию, но с нужным функционалом.
Вот основные коллекции: https://github.com/dotnet/coreclr/tree/master/src/mscorlib/shared/System/Collections
По поводу ObservableCollection можно начать отсюда - https://github.com/dotnet/corefx/blob/2847e0ec9f7c9ac42d44d2bc8c6fd39e504b7a9b/src/System.ObjectModel/ref/System.ObjectModel.cs