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

ADN Club => Civil 3D API => Тема начата: simson43 от 04-02-2019, 22:56:31

Название: методы объекта Structure
Отправлено: simson43 от 04-02-2019, 22:56:31
любопытства ради.. что за необычные методы у Structure будто неродные: с маленькой буквы через пробел... не как все
Код - C# [Выбрать]
  1. public ObjectId get_ConnectedPipe(int index);
  2. public double get_PipeCenterDepth(int index);
  3. public double get_PipeInnerDiameterOrWidth(int index);
  4. public double get_PipeInvertDepth(int index);
  5. public double get_PipeOuterBottomDepth(int index);
  6. public double get_PipeOuterTopDepth(int index);
  7. public double get_PipeWallThickness(int index);
Название: Re: методы объекта Structure
Отправлено: Дмитрий Загорулькин от 04-02-2019, 23:21:44
Да, странные наименования. Но работают как полагается.
Название: Re: методы объекта Structure
Отправлено: simson43 от 04-02-2019, 23:32:14
Надеялся вы уже не раз ими оперировали и знаете их историю, откуда они такие взялись.. эх(
нагуглить ничего не удалось(
Название: Re: методы объекта Structure
Отправлено: Александр Ривилис от 05-02-2019, 00:14:11
Надеялся вы уже не раз ими оперировали и знаете их историю, откуда они такие взялись.. эх(
нагуглить ничего не удалось(
Обычно методы типа get_XXX(int index) - это индексаторы...
Название: Re: методы объекта Structure
Отправлено: Дмитрий Загорулькин от 06-02-2019, 16:21:39
Надеялся вы уже не раз ими оперировали и знаете их историю, откуда они такие взялись.. эх(
нагуглить ничего не удалось(
Возможно, что программист, который их разрабатывал, провёл аналогию с методами, которые получаются в CIL из свойств. В нём свойство преобразуется в методы get_<имя свойства> и set_<имя свойства>:
Цитировать
Свойства и методы тоже имеют специальный формат представления в CIL. Например, чтобы модифицировать класс MyUserInfo с целью поддержки общедоступного свойства по имени TheString, можно написать следующий CIL-код (обратите внимание на использование атрибута specialname):
// Свойство TheString
.method public hidebysig specialname
     instance string get_TheString() cil managed
{
     // Код реализации
}
.method public hidebysig specialname
       instance void set_TheString(string 'value') cil managed
{
// Какой-то код
}
.property instance string TheString()
{
.get instance string
MyUI.MyUserInfo::get_TheString()
.set instance void
MyUI.MyUserInfo::set_TheString(string)
}
Пример взят с ProfessorWeb (https://professorweb.ru/my/csharp/assembly/level4/4_7.php).
А в целом, как они называются и почему именно так - мне как-то всё равно. У меня есть только радость по поводу того, что они есть :)
Название: Re: методы объекта Structure
Отправлено: simson43 от 06-02-2019, 18:12:57
ProfessorWeb зараженный майнерский сайт) не стоит там долго пребывать)
Название: Re: методы объекта Structure
Отправлено: Александр Ривилис от 06-02-2019, 18:28:43
ProfessorWeb зараженный майнерский сайт) не стоит там долго пребывать)
Откуда дровишки?
Извините, вам запрещён просмотр содержимого спойлеров.
Название: Re: методы объекта Structure
Отправлено: simson43 от 06-02-2019, 19:26:14
Не то что бы вирус..
Извините, вам запрещён просмотр содержимого спойлеров.
Название: Re: методы объекта Structure
Отправлено: simson43 от 06-02-2019, 19:29:03
У меня есть только радость по поводу того, что они есть
Хотелось все уже увидеть метод возвращающий массив всех присоединенных труб, не критично конечно но было б приятно
Название: Re: методы объекта Structure
Отправлено: Дмитрий Загорулькин от 06-02-2019, 19:37:38
Хотелось все уже увидеть метод возвращающий массив всех присоединенных труб, не критично конечно но было б приятно
Код - C# [Выбрать]
  1. public static List<ObjectId> GetConnectedPipes(this Structure structure)
  2. {
  3.     List<ObjectId> pipeIds = new List<ObjectId>();
  4.     int conPipesCount = structure.ConnectedPipesCount;
  5.     for (int i = 0; i < conPipesCount; i++)
  6.     {
  7.         ObjectId conPipeId = structure.get_ConnectedPipe(i);
  8.         pipeIds.Add(conPipeId);
  9.     }
  10.     return pipeIds;
  11. }
  12.  
Название: Re: методы объекта Structure
Отправлено: simson43 от 06-02-2019, 19:39:28
Под некритично я это и имел ввиду) что можно написать)
Т е в вашем арсенале он имеется? Или сейчас накидали?
Название: Re: методы объекта Structure
Отправлено: Дмитрий Загорулькин от 06-02-2019, 19:47:56
Из библиотеки вытащил своей. Причесал только немного - упростил, убрал проверки.
Название: Re: методы объекта Structure
Отправлено: Александр Ривилис от 06-02-2019, 20:04:32
simson43,
Этот вопрос имел отношение к данной теме? Не нужно превращать каждую тему в offtop.
Название: Re: методы объекта Structure
Отправлено: Александр Ривилис от 06-02-2019, 20:07:03
Не то что бы вирус..
Спойлер
https://pikabu.ru/story/mayner_na_professorwebru_5353785
Этой теме полтора года.