|
|
|
|
#1 |
|
Участник
|
На сколько я себе это представляю, расширенный тип закреплен именно за переменной, а не за её значением.
X++: Qty source1; InventQty source2; Qty target; ; source1 = 100; source2 = 200; target = source1 + source2; // Какого типа должно стать значение target? // А если типы source1 и source2 принадлежат не одной иерархии? Объекты другое дело - здесь есть понятие не только типа переменной но и типа значения. Последнее можно определить при помощи функции ClassIdGet(). Последний раз редактировалось S.Kuskov; 27.04.2010 в 22:38. |
|
|
|
|
#2 |
|
Участник
|
Цитата:
По моему разумению - если типы souce1 и source2 принадлежат разной иерархии, то начинает работать приведение типов. Но это - несколько иной случай. Меня интересует, как определить программно (в коде Х++), какого типа переменная _source1 в момент исполнения кода следующего метода: X++: void method1(TypeA _source1) { ... switch (/*определение типа переменной _source1*/) { case (extendedTypeNum(TypeA)) : ... break; case (extendedTypeNum(TypeB)) : ... break; } ... }
__________________
MS Dynamics AX 2009 Kernel 5.0.1600.4110 Application 5.0.1500.6491 |
|
|
|
|
#3 |
|
Участник
|
Воот! И вот это самое приведение
не позволяет проследить "начальный" тип значения. Т.е. при каждом присваивании (а передача параметра вызывает копирование значения) значение будет безвозвратно принимать тип той перменной в которую его записывают.P.S.: Ещё можно попробовать поиграться с типом AnyType. Возможно его поведение будет отличаться от стандартных типов? |
|
|
|
| За это сообщение автора поблагодарили: Sergey Petrov (1). | |
| Теги |
| edt, параметры, полезное |
|
|
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|