|
![]() |
#1 |
Участник
|
Wrapping a base method in an extension of a derived class
The following example shows how to wrap a base method in an extension of a derived class. For this example, the following class hierarchy is used. X++: class A { public void salute(str message) { info(message); } } class B extends A {} class C extends A {} X++: [ExtensionOf(classStr(B))] final class B_Extension { public void salute(str message) { next salute(message); info("B extension"); } } This behavior becomes clearer if we implement a method that uses these three classes. X++: class ProgramTest { public static void main(Args args) { var a = new A(); var b = new B(); var c = new C(); a.salute("Hi"); b.salute("Hi"); c.salute("Hi"); } } By using this mechanism, you can wrap the original method only for specific derived classes. https://docs.microsoft.com/en-us/dyn...d-wrapping-coc
__________________
Felix nihil admirari Последний раз редактировалось wojzeh; 07.11.2018 в 17:13. |
|
![]() |
#2 |
Участник
|
![]() Цитата:
(Thank you for your answer. I have the different case: I havn't COC. I have extensions for parent class and for a child. Both extensions has the same method. A class variable declared as a parent class, but initialized as a child. The system invokes extension for the parent class) X++: class A { } class B extends A { } [ExtensionOf(classStr(A))] final class A_Extension { public void salute() { info("A extension"); } } [ExtensionOf(classStr(B))] final class B_Extension { public void salute() { info("B extension"); } } X++: class Test01 { public static void main(Args _args) { A a; a = new B(); a.salute(); } } |
|
|
За это сообщение автора поблагодарили: Logger (5), Pokersky09 (2). |
Теги |
chain of command, d365fo |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|