AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.06.2021, 11:39   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,321 / 4136 (196) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Как стандартный ListEnumerator получает ссылку на список?
Эпиграф:
Какой он, этот Слонопотам?
Неужели очень злой?
Идет ли он на свист? И если идет, то з а ч е м ?..
Любит ли он поросят или нет?
И к а к он их любит?..

Если он ест поросят, то, может быть, он все-таки не тронет поросенка, у которого есть дедушка по имени Посторонним В.?

Бедный Пятачок не знал, как ответить на все эти вопросы. А ведь ему через какой-нибудь час предстояло впервые в жизни встретиться с настоящим Слонопотамом!
щас глупую весч спрошу.

Как стандартный ListEnumerator получает ссылку на список?

сейчас единственный способ создать экземпляр класса ListEnumerator - это вызвать метод list.getEnumerator()

ну, ок. пусть будет единственный.

я так понимаю что метод list.getEnumerator()
внутри создает экземпляр класса ListEnumerator
и каким-то образом передает ссылку на енумерируемый список.

А как он передает? каким методом? можно ли этот скрытый метод вызвать из x++?

X++:
    List list = new list(Types::String)
    ListEnumerator le = list.getEnumerator();

    while( le && le.moveNext() )
    {
        this.addEnd(le.current());
    }
см. также:
А вот как заимплементить Enumerator
MapsIterator
__________________
Полезное на axForum, GitHub, Facebook, mazzy.priot, mazzy.music, coub.
За это сообщение автора поблагодарили: belugin (5).
Старый 10.06.2021, 12:03   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,489 / 2417 (87) +++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Не знаю возможно ли как-то private метод класса ядра аксапты вызвать из X++
В любом случае не стоит это делать, так как в другом билде все может поломаться.

А зачем вообще это ?
Какая проблема изначально стоит ?
Старый 10.06.2021, 12:17   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,321 / 4136 (196) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Logger Посмотреть сообщение
то private метод класса ядра аксапты вызвать из X++
а какой это метод?

Цитата:
Сообщение от Logger Посмотреть сообщение
А зачем вообще это ?
Какая проблема изначально стоит ?
проблема? проблем нет. как нет никаких вопросов как реализовать. уже реализовано.
мне интересно как это работает. поэтому я задаю вопрос на форуме специалистов.

задача - сделать свой энумератор, конечно. с блекджеком и фильтрами.


------------------------
Так и знал что об этом спросят.
Ребяты, давайте я сразу предупрежу:
попытки рассказывать в этой ветке о разнице между наследованием и композицией
попытки рассказать как это можно реализовать по-другому
и прочий оффтопик в этой ветке я буду удалять.

есть желание обсуждать - создавайте отдельную ветку и обсуждайте на здоровье.

в этой ветке вопрос:
Как стандартный ListEnumerator получает ссылку на список?
__________________
Полезное на axForum, GitHub, Facebook, mazzy.priot, mazzy.music, coub.

Последний раз редактировалось mazzy; 10.06.2021 в 12:21.
Старый 10.06.2021, 12:40   #4  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,546 / 2708 (100) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
Записей в блоге: 5
В 365 у него internal конструктор.

internal ListEnumerator(List sourceList)
__________________
blog | twitter
За это сообщение автора поблагодарили: mazzy (5).
Старый 10.06.2021, 13:14   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,321 / 4136 (196) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
В 365 у него internal конструктор.

internal ListEnumerator(List sourceList)
все таки конструктор, а не property с set-get методами...
спасибо.

а как в классических аксаптах?
__________________
Полезное на axForum, GitHub, Facebook, mazzy.priot, mazzy.music, coub.
Старый 10.06.2021, 13:30   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,321 / 4136 (196) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin
Ребята, не стоит вскрывать эту тему. Вы молодые, шутливые, вам все легко. Это не то. Это не Чикатило и даже не архивы спецслужб. Сюда лучше не лезть. Серьезно, любой из вас будет жалеть. Лучше закройте тему и забудьте, что тут писалось.
Сказали мне, что эта дорога
Меня приведёт к океану смерти,
И я с полпути повернул обратно.
С тех пор все тянутся предо мною
Кривые, глухие окольные тропы…

не совсем точное воспроизведение стихотворения «Трусость» японской поэтессы Акико Ёсано (1878—1942) в переводе Веры Марковой
https://ru.wikipedia.org/wiki/%D0%97...B5%D1%82%D0%B0
__________________
Полезное на axForum, GitHub, Facebook, mazzy.priot, mazzy.music, coub.
Старый 10.06.2021, 14:11   #7  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,489 / 2417 (87) +++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Папа, не лазай в розетку. Это дети говорят. Уже пробовали.
Старый 10.06.2021, 14:34   #8  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,546 / 2708 (100) +++++++++
Регистрация: 16.01.2004
Адрес: Москва
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение
а как в классических аксаптах?
Там C++, который, наружу в X++ не выставляется. Очень грубо говоря похоже на OleAutomation (IDispatch)
__________________
blog | twitter
За это сообщение автора поблагодарили: mazzy (5).
Старый 11.06.2021, 18:34   #9  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,031 / 298 (12) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
!
2005 год, mazzy предлагает внедрять аксапту без программирования, 2015 год, mazzy поработал в Microsoft, 2021 год, mazzy собирается делать в аксапте коллекции, которые не уступают стандартным! Я что-то упустил?

По теме: в баню как там оно в стандарте, потому что код размазан и большей частью скрыт, если хочется сделать свой Enumaretor то надо измерить скорость доступа к базовым коллекциям: Array и Container. Последний наверное медленней, потому что по сути им Damgaard изобрели JSON за долго до веб-революции, так как контейнер - это строка и на сериализацию и обратно уходит какое-то время.

Моя идея такая, что нужно вычислить максимальную скорость работы самых базовых примитивов и на этом писать свой Enumerator с фильтрами, куртизанками, Илоном Маском и Рогозиным
Старый 11.06.2021, 18:50   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,321 / 4136 (196) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Lemming Посмотреть сообщение
2005 год, mazzy предлагает внедрять аксапту без программирования, 2015 год, mazzy поработал в Microsoft, 2021 год, mazzy собирается делать в аксапте коллекции, которые не уступают стандартным! Я что-то упустил?
конечно.

1.
2005 - Майкрософт поддерживает и развивает Аксапту
2021 - Майкрософт НЕ поддерживает и НЕ развивает классические Аксапты, для которых...

2.
...mazzy уже давно делает энумераторы (не коллекции!!!!), которые...

3.
...значительно превосходят стандартные!

------------

И еще. На меня очень сильно повлиял вовсе не Microsoft, а работа в команде Ивана Захарова, особенно с db.
Ребяты, очень вам признателен.

------------
Цитата:
Сообщение от Lemming Посмотреть сообщение
скорость доступа к базовым коллекциям: Array и Container. Последний наверное медленней, потому что по сути им Damgaard изобрели JSON за долго до веб-революции, так как контейнер - это строка и на сериализацию и обратно уходит какое-то время.
угу. огромное время

Цитата:
Сообщение от Lemming Посмотреть сообщение
Моя идея такая, что нужно вычислить максимальную скорость работы самых базовых примитивов и на этом писать свой Enumerator с фильтрами, куртизанками, Илоном Маском и Рогозиным
уже вычислено - душераздирающее зрелище (С) Ослик Иа-Иа

я все больше склоняюсь к X++оберткам вокруг .net-овских классов. (особенно в части regexp...)

но для этого надо понять, а можно ли таки сделать что-то вменяемое со стандартными объектами классических аксапт.

в стандарте слишком много сил положено на передачу данных между клиентом и сервером. запутали до невозможности.

---------
и обратите внимание, я давно ничего не предлагаю для новейшего продукта, который даже не называется Аксаптой
__________________
Полезное на axForum, GitHub, Facebook, mazzy.priot, mazzy.music, coub.

Последний раз редактировалось mazzy; 11.06.2021 в 19:20.
За это сообщение автора поблагодарили: sukhanchik (5).
Старый 12.06.2021, 11:58   #11  
EVGL is offline
EVGL
Moderator
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,100 / 2602 (95) +++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Позволю себе один комментарий: 2021-2012 = 9.
С другой стороны, это не предел. Сейчас сносим систему в Бразилии, "возраст" которой превосходит мой биологический. То есть лет 30 еще есть у AX 2012

Последний раз редактировалось EVGL; 12.06.2021 в 12:01.
За это сообщение автора поблагодарили: trud (1).
Старый 12.06.2021, 16:01   #12  
trud is offline
trud
Участник
Лучший по профессии 2017
 
981 / 1370 (47) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от mazzy Посмотреть сообщение
задача - сделать свой энумератор, конечно. с блекджеком и фильтрами.
Такая фукнциональность уже есть, называется временные таблицы
Старый 12.06.2021, 16:18   #13  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,321 / 4136 (196) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от trud Посмотреть сообщение
Такая фукнциональность уже есть, называется временные таблицы
и ты, trud?!
ты тоже путаешь энумераторы с коллекциями?!
__________________
Полезное на axForum, GitHub, Facebook, mazzy.priot, mazzy.music, coub.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
D365 как получить список всех меточных файлов swr DAX: Программирование 1 10.08.2020 10:45
список объектов из перекрестных ссылок jeky DAX: Программирование 2 01.11.2018 13:37
Как работает список рассылки? fialka DAX: Функционал 2 26.06.2008 09:15
Сергей Герасимов: Майкрософт ежемесячно публикует список исправленных ошибок Blog bot DAX Blogs 1 16.01.2007 11:52
Список полей таблиц на базе конкретного EDT Владимир Максимов DAX: Программирование 10 06.10.2004 14:45
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 16:31.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.