Судя по исходникам classIdGet это типа
X++:
return object? object.handle() : classIdFromVariableType;
Где classIdFromVariableType это classID полученный по имени переменной. Т.е. для
X++:
MyClass myVariable = null;
Debug::assert(classIdGet(myVariable) == classNum(MyClass));
myVariable = new MySubClass();
Debug::assert(classIdGet(myVariable) == classNum(MySubClass));
Кому не лень, поставьте эксперимент, плиз