Показать сообщение отдельно
Старый 07.01.2020, 16:37   #2  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Blog bot Посмотреть сообщение
Можно ли обойтись без копирования текста?
Думаю, нет, так как string иммутабельный в X++ и .NET FW. Возможно, можно снизить количество копирований при помощи StringBuilder/TextBuffer

Цитата:
TextBuffer.find или дот-нетовский RegExp?
С одной стороны, если прокешировать скомпилированный RegEx, скорее всего, он будет работать быстрее чем find. С другой стороны, сам со себе вызов .NET из X++ не скомпилированного в IL тормозил на 4, кажется. Надо бенчмаркать, наверное.

Цитата:
Статические методы или методы инстанса?
Статические методы более очевидны (явно что является аргументом, что результатом), но в X++ синтаксис вызова многословен. Но я бы за статические проголосовал.

В IL вот это должно свалиться
X++:
 TextBuffer  ret         = new TextBuffer();
...
// InvalidCastException так как public static SysText construct(str s = '')
ret = SysText::construct(text.subStr(startPos, endPos - startPos + 1));
...
За это сообщение автора поблагодарили: mazzy (2).