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

Дата публикации: 14.09.2017

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

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

class MyClass 
{  
    readonly str identifier = "XYZ";  
    readonly str identifier2;  

 

    public void new(str _identifier) 
    {  
        identifier2 = _identifier;  
    }  

    public void foo() 
    { 
        // Поле ‘identifier2’ только для чтения. Значение не может быть назначено. 

        //identifier2 = "ABC";
    }  
}  

 

Большой вопрос: «Когда это использовать?» На мой взгляд, сценарии фактического использования ограничены - просто потому, что другие языковые конструкции все еще отсутствуют.

В X++ мы до сих пор рекомендуем использовать паттерны construct и newFrom. Эти шаблоны рекомендуют не иметь никаких параметров в методе new - readonly мало применим, когда метод new не имеет параметров.

Итак, почему мы предпочитаем метод new без параметров?

  • Он дает возможность сериализовать классы с использованием шаблона pack/unpack – все классы, наследованные от RunBase, подчиняются этому.
  • Он дает возможность использовать extension framework и smart customizations.

Как только X++ будет поддерживать getters/seters и перегрузку метода (по крайней мере перегрузку метода new), тогда использование readonly станет удобно.

Если у вас есть хороший сценарий использования readonly, пожалуйста, поделитесь этим в комментарии ниже.

 

Этот пост относится к предварительному показу 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: вещественные типы данных" доступна тут.

 

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

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


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

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

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

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

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


Подписка

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

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


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