AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

 
 
Thread Tools Search this Thread Display Modes
Old 17.05.2005, 10:51   #1  
Red Stranger is offline
Red Stranger
Участник
 
102 / 19 (1) ++
Join Date: 01.04.2005
? Непонятное поведение компилятора.
Доброго всем времени суток.

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

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

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

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

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

    
getDate();

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

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

    
getIntExclusive17052005();

Old 17.05.2005, 17:43   #7  
mazzy is offline
mazzy
Участник
mazzy's Avatar
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Join Date: 29.11.2001
Location: Москва
Blog Entries: 10
Нет, так не работает.
Ищите где у вас определена getDate. Скорее всего в Global




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

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

    
getIntExclusive17052005();

А вот так действительно работает...
Attached Files
File Type: img66914-1 (12.0 KB, 468 views)
__________________
полезное на axForum, github, vk, coub.
Old 17.05.2005, 17:56   #8  
belugin is offline
belugin
Участник
belugin's Avatar
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Join Date: 16.01.2004
Blog Entries: 5
Я замечал что вызовы внутренних функций проверяются при компиляции менее строго чем вызовы методов.
Например, вот это компилируется:
PHP Code:
static void Test_Job1(Args _args)
{
    
void testtest(str aObject b)
    {
        ;
        
info(a);
    }
    
testTest("11111");
    
testTest();

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

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

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

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

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

Similar Threads
Thread Thread Starter Forum Replies Last Post
Непонятное поведение системы 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

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 04:34.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.