AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.02.2021, 07:16   #1  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
[Ax2012] The method override must be declared with the same return type as the base method
В статье C# Proxy Source Code for X++ Classes есть такой текст :
Цитата:
Every X++ method is marked either virtual, override, or new in the C# proxy.
```
Suppose in X++ you have a class DerivedClass that extends X++ class BaseClass. In their C# proxies, the methods would be decorated as follows:
  • int BaseClass.method22() – virtual
  • int method333() – virtual
  • int DerivedClass.method22() – override
  • int64 method333() – new
  • void Derived.method4444(bool b) – virtual
Но при попытке реализовать пример, в котором в базовом классе функция возвращает int, а в наследнике эта же функция возвращает int64, выдаётся ошибка компилятора :
X++:
The method override must be declared with the same return type as the base method.
Пытаюсь понять - зачем Microsoft в статье указал заведомо невозможную ситуацию ?
Может в каких-то версиях Ax2012 в наследнике можно перекрыть функцию и вернуть отличающийся от родительской функции тип ?
__________________
Дмитрий
За это сообщение автора поблагодарили: S.Kuskov (2).
Старый 22.02.2021, 08:43   #2  
online
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Действительно странно. Вот здесь написано что такой возможности нет https://docs.microsoft.com/en-us/dyn...vs-overloading
Цитата:
Overriding vs. Overloading
Overloading is where there is more than one method with the same name, but the methods have different signatures (return type or parameter lists or both).

Overriding is where the superclass's implementation of a method is altered by the subclass's implementation of the method, but the signatures of both methods are the same.

X++ supports overriding, but it does not support overloading
Старый 22.02.2021, 08:51   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Damn Посмотреть сообщение
зачем Microsoft в статье указал заведомо невозможную ситуацию ?
Стоша... https://coub.com/view/5td1g Притяженья больше нет...

См. также Ax2012. Типы операндов не совместимы с оператором
__________________
полезное на axForum, github, vk, coub.
Старый 22.02.2021, 08:54   #4  
online
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Возможно на этом примере показано, что скрипт для каждого метода int добавляет метод int64 сам уже на стороне C#.
Старый 22.02.2021, 12:49   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Damn Посмотреть сообщение
Может в каких-то версиях Ax2012 в наследнике можно перекрыть функцию и вернуть отличающийся от родительской функции тип ?
Я думаю, это ближе всего к истине. Возможно генерацию прокси сделали до того, как компилятор стал более строгим и поэтму в примере описана генерация ключевого слова new для таких случаев.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
alirazazaidi: Out of the box workflow list Dynamics 365 for Finance and Operations Blog bot DAX Blogs 0 07.10.2019 16:48
daxmusings: AX2012 Extension Framework Blog bot DAX Blogs 0 12.11.2014 09:11
kamalblogs: Error: SSRS/EP error when the return type in display method is incorrect – Dynamics AX 2012 Blog bot DAX Blogs 0 11.10.2013 12:11

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:36.