22.02.2021, 07:16 | #1 |
Участник
|
[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:
X++: The method override must be declared with the same return type as the base method. Может в каких-то версиях Ax2012 в наследнике можно перекрыть функцию и вернуть отличающийся от родительской функции тип ?
__________________
Дмитрий |
|
|
За это сообщение автора поблагодарили: S.Kuskov (2). |
22.02.2021, 08:43 | #2 |
Участник
|
Действительно странно. Вот здесь написано что такой возможности нет 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 |
Участник
|
Стоша... https://coub.com/view/5td1g Притяженья больше нет...
См. также Ax2012. Типы операндов не совместимы с оператором |
|
22.02.2021, 08:54 | #4 |
Участник
|
Возможно на этом примере показано, что скрипт для каждого метода int добавляет метод int64 сам уже на стороне C#.
|
|
22.02.2021, 12:49 | #5 |
Участник
|
Я думаю, это ближе всего к истине. Возможно генерацию прокси сделали до того, как компилятор стал более строгим и поэтму в примере описана генерация ключевого слова new для таких случаев.
|
|