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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.12.2004, 12:24   #6  
Alks is offline
Alks
Участник
 
336 / 41 (2) +++
Регистрация: 23.07.2004
Адрес: г. Новокузнецк
Цитата:
Изначально опубликовано Ace of Database
Тоже часто встречается такая проблема, что во многих методах классов нужно ставить точку с запятой. Причем эти классы как правило лежат в слое sys.
Это не проблема, это особенность синтаксиса языка X++.
Дело в том что в X++, в отличие от других клонов языка C++ разрешено создавать экземляры переменных с именами, совпадающими с именами типов данных! Это довольно интересный ход, т.к. теперь если в начале ф-ии встретит такой например код:

PHP код:
void funcInventTable InventTable )
{
     
InventTable........
.....

То компилятор не в силах определить самостоятельно что такое InventTable - начало декларации переменной типа InventTable или использование переменной InventTable из параметра, по умолчанию всегда предполагает первое!
Для устранения недоразумений в синтаксис языка была ввдена точка с запятой, отделяющая блок деклараций переменных (возможно пустой) от собственно тела ф-ии (и в отличие от многих других клонов C++ в X++ определять переменные можно только в начале ф-ии). Так что

PHP код:
void funcInventTable InventTable )
{
     
InventTable........
.....

компилятором всегда предполагается как начало объявления переменной типа InventTable, а вот

PHP код:
void funcInventTable InventTable )
{
     ;
     
InventTable........
.....

уже будет воспринято как обращение к параметру InventTable.

Интересно так же что в нигде других местах языка не разрешаются "лишние" точки с запятой, опять же в отличие от других клонов C++ в которых такие вещи гордо наз-ся "пустыми операторами".
 


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

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

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