Ситуация следующая:
X++:
static void Job27(Args _args)
{
DictTable pseudoNull = new DictTable(0);
DictTable pseudoNull2 = new DictTable(0);
DictTable trueNull = null;
DictTable trueNull2 = null;
#localmacro.test
info('%1 --> '+((%1)?'true':'false'));
#endmacro
;
#test(pseudoNull == null)
#test(pseudoNull == pseudoNull2)
#test(pseudoNull2 == trueNull)
#test(trueNull == trueNull2)
}
Выхлоп:
pseudoNull == null --> true
pseudoNull == pseudoNull2 --> false
pseudoNull2 == trueNull --> false
trueNull == trueNull2 --> true
Вывод в аксапте существуют "пустые объекты". Эти обхекты существуют и занимают память, они разные. Но ==null компилируется как "x==null || is_empty(x)", где is_empty некоторая функция проверки на пустоту.