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

ADN Club => AutoCAD .NET API => Тема начата: avc от 04-02-2020, 22:51:47

Название: Id vs ObjectId
Отправлено: avc от 04-02-2020, 22:51:47
У класса DBObject есть два свойства:
Код - C# [Выбрать]
  1.     public ObjectId ObjectId { get; }     //     Accesses the object ID.
  2.     public override ObjectId Id { get; }  //     Returns the Id property value.
И еще есть Handle, который дублируется внутри структуры ObjectId.
Каждый раз когда нужен идентификатор ломаюсь писать по короче или по длиннее...
Сейчас не удержался и решил спросить знатоков: может есть какая-то разница?
Какой-то сакральный смысл в существовании двух (даже двух с половиной) одинаковых свойств?
Название: Re: Id vs ObjectId
Отправлено: Александр Ривилис от 04-02-2020, 23:07:57
Сейчас не удержался и решил спросить знатоков: может есть какая-то разница?
Смотрим комментарий из файла dbmain.h:
Код - C++ [Выбрать]
  1. ACDBCORE2D_PORT AcDbObjectId        id() const override;    // same as objectId()
Теоретически никакой разницы быть не должно. Разница возможна в Custom Object/Entity, т.к. id() может быть переопределён так, что он не будет возвращать значение равное objectId(), но это будет плохим стилем.
В .NET аналогично, так как это лишь обертки.