AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.05.2005, 10:51   #1  
Red Stranger is offline
Red Stranger
Участник
 
102 / 19 (1) ++
Регистрация: 01.04.2005
? Непонятное поведение компилятора.
Доброго всем времени суток.

У меня возникла следующая ситуация: в методе класса я дописал внутренний метод с одним входящим параметром.
Вот его заголовок
PHP код:
date GetDate(FactureJour_RU facture
Но когда я его вызываю , без параметра и компилирую, акса ни слова о том, что так мол нельзя. Объясните пожалуйста, кто знает почему так.

Всем заранее спасибо.
Старый 17.05.2005, 13:51   #2  
YaHooka is offline
YaHooka
Участник
 
212 / 16 (1) ++
Регистрация: 22.03.2005
Адрес: Москва
Я не силен в программировании, но может Вы просто не указали, что параметр обязательный?
Старый 17.05.2005, 14:01   #3  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Возможно один из предков уже имел этот метод без параметра (для проверки достаточно встать на метод и нажать CTRL-SPACE -- в результате перейдете к искомому методу)

Каюсь, недоглядел : ": в методе класса я дописал внутренний метод "

Обалдеть! Работает!

PHP код:
static void Job6(Args _args)
{
    
void GetInt(int i)
    {
        print 
i;
        
pause;
    }
    ;

    
getDate();

Старый 17.05.2005, 14:48   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Скорее всего у вас добавлен статический метод getDate специального класса Global.
Такие методы можно вызывать не указывая GLobal::
См. документацию с ключевым словом Global
__________________
полезное на axForum, github, vk, coub.
Старый 17.05.2005, 14:50   #5  
Red Stranger is offline
Red Stranger
Участник
 
102 / 19 (1) ++
Регистрация: 01.04.2005
Я пробовал менять имя метода на иное, что-то типа GetMyDate() серавно работает без сообщений компилятора.
Старый 17.05.2005, 14:52   #6  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Согласен, у меня тоже самое:

PHP код:
static void Job6(Args _args)
{
    
void getIntExclusive17052005(int i)
    {
        print 
i;
        
pause;
    }
    ;

    
getIntExclusive17052005();

Старый 17.05.2005, 17:43   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Нет, так не работает.
Ищите где у вас определена getDate. Скорее всего в Global




Цитата:
Изначально опубликовано DreamCreator
Согласен, у меня тоже самое:

PHP код:
static void Job6(Args _args)
{
    
void getIntExclusive17052005(int i)
    {
        print 
i;
        
pause;
    }
    ;

    
getIntExclusive17052005();

А вот так действительно работает...
Вложения
Тип файла: img66914-1 (12.0 Кб, 440 просмотров)
__________________
полезное на axForum, github, vk, coub.
Старый 17.05.2005, 17:56   #8  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Я замечал что вызовы внутренних функций проверяются при компиляции менее строго чем вызовы методов.
Например, вот это компилируется:
PHP код:
static void Test_Job1(Args _args)
{
    
void testtest(str aObject b)
    {
        ;
        
info(a);
    }
    
testTest("11111");
    
testTest();

Старый 17.05.2005, 18:22   #9  
xonix is offline
xonix
Участник
 
360 / 11 (1) +
Регистрация: 25.08.2004
Сергей, ну ты то не тормози Ясен хрен, функции такой нет - объявили GetInt, вызываешь getDate..
Старый 17.05.2005, 18:25   #10  
xonix is offline
xonix
Участник
 
360 / 11 (1) +
Регистрация: 25.08.2004
А не ругается, т.к. скорее всего берет для неуказанных переменных значение типа по умолчанию... 0 для чисел, nil для объектов, "" для строк и т.д.
В принципе, удобно...
Старый 17.05.2005, 18:29   #11  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано xonix
Сергей, ну ты то не тормози Ясен хрен, функции такой нет - объявили GetInt, вызываешь getDate..
Это не я! Он сам пришел (С) Бриллиантовая рука
http://www.axforum.info/forums/showt...6820#post66820

Цитата:
Изначально опубликовано xonix
А не ругается, т.к. скорее всего берет для неуказанных переменных значение типа по умолчанию... 0 для чисел, nil для объектов, "" для строк и т.д.
В принципе, удобно...
А не должен. Ведь в заголовке не указано, что параметр опциональный.
__________________
полезное на axForum, github, vk, coub.
Старый 17.05.2005, 18:39   #12  
YaHooka is offline
YaHooka
Участник
 
212 / 16 (1) ++
Регистрация: 22.03.2005
Адрес: Москва
Mazzy, не могли бы Вы рассказать по подробнее про опциональность? Если я правильно понимаю, то при загловке функции
PHP код:
void getIntExclusive17052005(int i
параметр является обязательным, а при
PHP код:
void getIntExclusive17052005(int i=1
нет

Скажите наконец, баг это или так и должно быть и я ничего не понимаю в программировании?

Цитата:
А не должен. Ведь в заголовке не указано, что параметр опциональный.
Приведите пример, когда должен, пожалуйста.
Старый 17.05.2005, 18:39   #13  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
а как вам такое?
PHP код:
    void testInt(str i)
    {
        ;
        
info(i);
    }
    ;
    
testInt(1200); 
оно автоматически делает int2str
Старый 17.05.2005, 18:43   #14  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
граждане, а зачем вам собственно в внутри функции передавать в метод параметры?
Они же и так все доступны в ней.
Старый 17.05.2005, 18:49   #15  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
шоб понятней было. вообще у меня, например правило: переменная должна иметь настолько низкую область видимости, насколько это возможно. т.е. еслиб было можно я б делал так:
PHP код:
for(int i=1;i<=10;i++){
    
// здесь i использовать можно
}
// а здесь i использовать нельзя
for(int i=1;i<=10;i++){
     
// здесь i использовать можно опять

Старый 17.05.2005, 19:49   #16  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано YaHooka
Mazzy, не могли бы Вы рассказать по подробнее про опциональность?
Вы все правильно говорите.
Руководство разработчика. Раздел "Using optional parameters"
__________________
полезное на axForum, github, vk, coub.
Старый 18.05.2005, 12:08   #17  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
Цитата:
Изначально опубликовано belugin
а как вам такое?
PHP код:
    void testInt(str i)
    {
        ;
        
info(i);
    }
    ;
    
testInt(1200); 
оно автоматически делает int2str
Не знаю, как всем эти фичи, но надеюсь в жизни их не повстречать! И тем более не собираюсь их использовать.
Старый 18.05.2005, 12:44   #18  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
я вот тоже не собирался...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Непонятное поведение системы Paul_ST DAX: Администрирование 5 19.01.2006 15:31
Непонятное поведение векторных полей в QueryBuildDataSource. Lemming DAX: Программирование 2 12.05.2005 17:43
Непонятное поведение критериев в отчете nicko DAX: Программирование 2 13.04.2005 15:48
Переполнение во внутреннем стеке компилятора. Smith DAX: Программирование 7 25.01.2005 17:40
Странное поведение компилятора Alks DAX: Программирование 1 08.01.2005 11:14
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:21.