Показать сообщение отдельно
Старый 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).