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: методы расширения" доступна тут.

 

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

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


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

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

13.02.2018
Этот пост расскажет об одном из наиболее незаметных изменений в AX7. AX7 использует среду выполнения платформы .NET или CLR. В CLR сигнатура метода включает регистр, параметры и тип возвращаемого...
10.01.2018
Dynamics AX – это веб-приложение, работающее в облаке, но как пользователи могут работать с файлами в такой среде? Ответ прост: так же, как и с другими веб-приложениями. Если вы знаете, как добавлять...
22.11.2017

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

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


Подписка

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

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


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