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