click fraud detection

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: вещественные типы данных" доступна тут.

 

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

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


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

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

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

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

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


Подписка

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

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


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