Показать сообщение отдельно
Старый 29.09.2023, 18:08   #30  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,875 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от ivas Посмотреть сообщение
Макрос?
не подойдет.
Тернарный оператор это выражение.

X++:
info(callfunc1() ? callfunc1() : callfunc2());
не скомпилируется. Уже лучше что-то типа такого

X++:
#localmacro.tern
    %1 ? any2any(%1) : any2any(%2)
#endmacro
где
X++:
public static anytype any2any(anytype _value)
{
    return _value;
}
тогда
X++:
private void method1()
{
    int     a;
    anytype b = "";
    ;
    
    info(strFmt("%1", (a ? a : b))); // выдает предупреждение
    info(strFmt("%1", (a ? any2any(a) : any2any(b)))); // не выдает
    info(strFmt("%1", (#tern(a, b)))); // не выдает
}
но я сам так не делал.
За это сообщение автора поблагодарили: ivas (3).