Цитата:
X++:
...
for (varCount = dictMethod.parameterCnt(); varCount >= 1; varCount --)
{
parmsStr += strFmt("%1 %2, ", dictMethod.parameterType(varCount), dictMethod.parameterName(varCount));
}
Не будет ли отображаемый список параметров метода при таком цикле идти в
обратном порядке? или в данном контексте считаем что это не важно?
Добавлю своих 5 копеек для DAX 4.0:
X++:
static void jbTableMethodList(Args _args)
{
void tableMethodList( TableId _tableId, boolean _isStatic = false )
{
DictTable dictTable = new DictTable( _tableId ) ;
DictMethod dictMethod ;
Counter methodCount ;
Counter methodIdx ;
Counter varIdx ;
str methodNameTxt ;
str varListTxt ;
;
if( !dictTable )
return ;
setPrefix( strfmt( "%1 - %2 methods", dictTable.name(), _isStatic ? 'static' : 'instance' ) ) ;
methodCount = _isStatic ? dictTable.staticMethodCnt() : dictTable.objectMethodCnt() ;
for( methodIdx=1; methodIdx<=methodCount; methodIdx++ )
{
dictMethod = _isStatic ? dictTable.staticMethodObject( methodIdx ) : dictTable.objectMethodObject( methodIdx ) ;
methodNameTxt = dictMethod.runMode() == ClassRunMode::Called ? '' : strfmt( "%1 ", dictMethod.runMode() ) ;
methodNameTxt += strfmt( "%1 %2", extendedTypeId2DisplayName( dictMethod.returnType(), dictMethod.returnId() ), dictMethod.name() ) ;
varListTxt = '' ;
for( varIdx=1; varIdx<=dictMethod.parameterCnt(); varIdx++ )
{
varListTxt += strfmt( "%1 %2%3, ", extendedTypeId2DisplayName( dictMethod.parameterType( varIdx ), dictMethod.parameterId( varIdx ) ),
dictMethod.parameterName( varIdx ) ,
dictMethod.parameterOptional( varIdx ) ? ' (optional)' : '' ) ;
}
info( strfmt( "%1(%2)", methodNameTxt, strdel( varListTxt, strlen( varListTxt ), -2 ) ) ) ;
}
}
;
info( 'Dict reflection: DictTable & DictMethod' ) ;
tableMethodList( tableNum( InventTable), false ) ;
tableMethodList( tableNum( InventTable ), true ) ;
}