click fraud detection

X++ в AX7: Ключевое слово Const. Часть 13

Дата публикации: 12.10.2017
X++ в AX7: Ключевое слово Const. Часть 13

В AX7 X++ теперь поддерживается ключевое слово const. Его семантика аналогична семантике в C#

Если вкратце, то это позволяет вам определять члены в классе и переменные в методе, они могут быть проинициализированы только в объявлении. Компилятор заменит ссылки-константы значениями. Другими словами значение константы должно быть определено в момент компиляции. 

Это убийственная «фича»! Она позволяет избавиться от большинства случаев использования макросов. 

void constsAreCool() 
{
    #define.magicNumber("AX 2012");  
    const str MagicNumber = "AX7";  
    info(#magicNumber);  
    info(MagicNumber);  
 

Такое использование имеет множество преимуществ:

1.  IntelliSense в редакторе кода.

2.  Поддерживает «Переход к определению» в редакторе кода.

3.  Полный контроль над типом константы.

4.  Компиляция происходит быстрее, макросы печально известны своей долгой компиляцией.

Макросы неповоротливы – их невозможно переопределить или перекрыть.

При объединении public и static членов вы можете создавать классы, чтобы заменить библиотеки макросов.

static class TimeConstants 
{  
    static const public int DaysPerWeek = 7;  
    static const public int HoursPerDay = 24;  
    static const public int HoursPerWeek = TimeConstants::DaysPerWeek * TimeConstants::HoursPerDay;  
}  

 

По «best practice» используйте PascalCasing (стиль написания составных слов) при именовании констант (с ключевым словом const), независимо от того, помечены ли они модификатором доступа private, protected или public.

Обратите внимание, как происходит обращение к константам (с ключевым словом const) из классов:

TimeConstants::HoursPerWeek  

Это выглядит гораздо прозрачнее, чем при использовании макросов:

#TimeConstants
int x = #HoursPerWeek  

Теперь вы можете не сомневаться откуда именно берется значение.

 

Этот пост относится к предварительному показу MICROSOFT DYNAMICS AX7; представлен как есть и не влечет за собой передачу каких-либо прав. 

Оригинальная статья по ссылке.

Другие статьи по теме:

1 часть "X++ в AX7: ключевое слово "var" доступна тут.

2 часть "X++ в AX7: ключевые слова "finally" и "using" доступна тут.

3 часть "X++ в AX7: определение типа может включать 80 знаков" доступна тут

4 часть "X++ в AX7: элементы с уровнями доступа private и public" доступна тут.

5 часть "X++ в AX7: статические члены класса" доступна тут.

6 часть "X++ в AX7: ключевые слова Client/Server" доступна тут.

7 часть "X ++ в AX7: статическая подписка на событие" доступна тут.

8 часть "X ++ в AX7: статические классы" доступна тут.

9 часть "Х ++ в АХ7: Internal keyword" доступна тут.

10 часть "Х ++ в АХ7: вещественные типы данных" доступна тут.

11 часть "Х ++ в АХ7: ключевое слово Readonly" доступна тут.

12 часть "Х++ в AX7: методы расширения" доступна тут.

 

Акция "Тест-драйв Сопровождения"

Попробуй сопровождение АХ до подписания договора!


Узнать подробнее

Другие записи в блоге

22.11.2017
17.11.2017
Модуль «Сводное планирование» / «Журналы» / «Резервный запас» / «Строки» / кн. «Строки журнала» / «Создать строки».1. Вычисляется количество месяцев (numOfMonth) между датой начала и датой конца...
18.10.2017
Какую цену вы бы заплатили, чтобы иметь возможность делать так в X ++?for (int i = 1; i <= n; i++)   {}    Или так:

Подпишитесь на блог

Все интересные статьи нашего блога на Вашем почтовом ящике!


Подписка

Служба контроля качества сервиса

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


Письмо директору