22.08.2004, 06:32 | #10 |
Участник
|
Категорически не соглашусь с "мэтрами" :
1. Правила по преобразованию примитивных типов к логическому выражению в условиях, которые X++ унаследовал от C/C++ никто и никогда отменять не будет. Чётко и ясно сказано что нулевое значение аргумента воспринимается компилятором как false, а ненулевое - true, сомневаться в этом - значит проявлять незнание языка и плодить излишне перегруженный конструкциями код. if ( a )... всегда было и будет предпочтительнее чем if ( a != 0 ) так же как и if ( !( a < b ) ) выглядит запутаннее и непонятнее, чем if ( a >= b ) (кстати в практике программирования на 1С встречал следующий код: Если НЕ(ОсталосьСписать>0) Тогда Прервать; КонецЕсли; долго смеялся ) 2. То же самое касается и преобразования Common в boolean. if ( tbl ) выглядит гораздо проще и интуитивно понятнее чем if ( tbl.RecId ) Чем обоснованы рекомендации предпочитать tbl.RecId мне непонятно, ведь если когда нибудь правило преобразования Common в boolean хотя бы слегка изменят, половина кода аксапты станет неработоспособной, посему его никогда не изменят. В общем я предпочитаю if ( table1 ) Хотя в принципе всё это вопрос вкуса и относится к той же теме что и вопрос о том звёздочками или плюсиками лучше помечать блоки комментариев в коде. |
|
Теги |
recid, баг, ошибка, ax3.0 |
|
Похожие темы | ||||
Тема | Ответов | |||
if (record) vs if (record.RecId) | 18 | |||
Как сформировать RecId | 18 | |||
поля, содержащие RecId | 15 | |||
aEremenko: Дефрагментация RecID | 2 | |||
Два RecId у одной записи таблицы | 33 |
|