Разбираясь с одним вопросом (комуй интересно
вот с этим) случайно наткнулся на интересный факт
компилятор
не проверяет передаваемые параметры в методах, которые написаны внутри других методов (или внутри джоба).
вот пример:
X++:
static void Job685(Args _args)
{
void mthd1(int _i)
{
int i;
;
i++;
}
;
mthd1();
}
как мы видим метод mthd1() имеет один обязательный параметр, но вызываю я его без параметров, и никаких ошибок не выдается, ни на момент компиляции, ни на момент выполнения!
теперь обратная ситуация:
X++:
static void Job685(Args _args)
{
void mthd1()
{
int i;
;
i++;
}
;
mthd1(1);
}
метод mthd1() не имеет никаких параметров на входе, но при вызове этого метода, я ему передаю единичку. И вновь компилятор молчит, но при выполнении джоба, все таки открывается отладчик и появляется окошко о неверно вызванном методе!
P.S. я всегда был против такого использования методов, но иногда необходимость заставляет так писать.
В общем будте внимательны, при передаче параметров во внутренние методы!
P.S.1. Чуть не забыл, в Ax2009 эту ситуацию исправили, и компилятор на такие вещи реагирует