Показать сообщение отдельно
Старый 20.12.2020, 22:26   #7  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,867 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Добавлю еще 3-й вопрос.
почему такой код
X++:
fds = !_ignoreDataSourceLevel ? _record.dataSource() : null; // ругается
вызывает проблемы. Разве null нельзя однозначно преобразовать в нулевую ссылку на класс, как это происходит при обычном присваивании переменной
X++:
fds = null; // не ругается
А вот это еще веселее
X++:
ret = fdo ? fdo.validate() : _record.validateField(_fieldId); // ругается - один boolean отличается от другого ?
оба метода (FormDataObject.validate и common.validateField) возвращают boolean, но компилятор увидел где-то отличия в типах

а вот так нормально
X++:
        ret = fdo ? fdo.validate() : any2int(_record.validateField(_fieldId)); // не ругается
        ret = fdo ? fdo.validate() : any2enum(_record.validateField(_fieldId)); // не ругается
видимо где то в ядре прописано что один из методов валидации возвращает int, а другой boolean в то время как во всплывающей подсказке для обоих методов стоит описание, что возвращается boolean. Другого объяснения у меня нет.

Последний раз редактировалось Logger; 20.12.2020 в 22:50.