X++ в AX7: Сигнатуры методов. Часть 15

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

Этот пост расскажет об одном из наиболее незаметных изменений в AX7. AX7 использует среду выполнения платформы .NET или CLR. В CLR сигнатура метода включает регистр, параметры и тип возвращаемого значения. В AX2012 сигнатурой метода являлось просто наименование метода, не зависящее от регистра.

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

  • Исправление регистра в названии метода, например, "somemethod" -> "someMethod".
  • Изменение возвращаемого типа с void на <определенный_тип>

Вот пример, в котором я изменил регистр в имени метода, который используется тестом. Я НЕ перекомпилировал тест перед его запуском.

Обратите внимание на ошибку System.MissingMethodException: Method not found: 'Void Dynamics.AX.Application.MyClass.myMethod()'. CLR известен только метод с названием, все символы которого в нижнем регистре.

Необязательные параметры

При этом всё ещё можно добавлять или удалять необязательные параметры метода. Компилятор X++ использует перегрузку методов CLR, т.е. генерируются несколько методов с одним наименованием и отличающимися параметрами.

Мораль

Не изменяйте сигнатуру метода, если только вы не собираетесь (и имеете возможность) перекомпилировать всех потребителей метода. 

 

Этот пост относится к предварительному показу 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 часть "Х++ в AX7: ключевое слово Const" доступна тут.

14 часть "Х++ в AX7: объявление переменных в коде" доступна тут.

 

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

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


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

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

15.07.2018
Оценка риска корпоративных банкротств имеет большое значение для кредиторов и инвесторов. В последние годы искусственный интеллект и методы машинного обучения достигли многообещающих результатов в...
12.07.2018
Автор: Антон Ш., специалист Neti по Машинному обучению и Искусственному интеллекту
29.06.2018
В AX 2012 код может исполняться либо средой .NET CLR, когда это IL-код, либо интерпретатором AX когда это pcode. С точки зрения сборки мусора эти среды ведут себя по-разному.В AX7 работает только...

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

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


Подписка

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

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


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