10.06.2014, 17:00 | #1 |
Участник
|
код в CIL и без
Хочу поделиться опытом связанным с 2012:
Был вот такой код X++: void test() { Map valList = new Map(Types::String, Types::Container); Real value; ; valList.insert(value, conNull()); } 1. Прежде всего, это передача различных типов данных. а) например, при работе с Net-сборками: Без цила работает так X++: void test(CLRObject _obj) { System.Collections.Hashtable hash; ; hash = new System.Collections.Hashtable(_obj); } X++: void test(CLRObject _obj) { System.Collections.Hashtable hash; System.Collections.IDictionary iDictionary; ; if ( #isDictionary ) { iDictionary = _obj; hash = new System.Collections.Hashtable(iDictionary); } } в) Аналогично, надо внимательно относиться к классам дочерним и родительским, к передаче данных через контейнер, к использованию anytype и common и т.д. 2. insert_recordset без цила позволяет писать в таблицу константы (используя переменные правильного типа), в циле этот номер не проходит, приходится выполнять две операции, сначала используя insert_recordset прописать идентификаторы, а затем при помощи update_recordset прописать текстовые константы. 3. Метод внутри метода (вложенный): с ним нет проблем, кроме одной: если вложенный метод является рекурсивным, то цил даже отказывается компилиться У меня пока все, может быть кто то еще с чем то подобным встречался ? Последний раз редактировалось Мартынов Дмитрий; 10.06.2014 в 17:02. Причина: ня |
|
|
За это сообщение автора поблагодарили: mazzy (2), Logger (3), Link (4), S.Kuskov (5), pedrozzz (1). |