powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / #super в generator-методах
6 сообщений из 6, страница 1 из 1
#super в generator-методах
    #36949100
cache hit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как вызвать базовый метод-генератор?
Конкретно делаю вот что: наследовал свой класс от %String дописываю IsValid и хочу что-то вроде:
Код: plaintext
1.
2.
3.
D %code.Write("S sc = "),##super
D %code.Write("If $$$ISERR(sc) = ...")
...
...
Рейтинг: 0 / 0
#super в generator-методах
    #36949706
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterSystems##super Syntax
Suppose that a subclass method overrides a superclass method. From within the subclass method, you can use the ##super() syntax to invoke the overridden superclass method.
Note:
##super is case sensitive and must be in all lowercase.
For example, suppose that the class MyClass.Down extends MyClass.Up and overrides the Simple class method. If the code for MyClass.Up.Simple is:

ClassMethod Simple()
{
Write "Superclass.",!
}

and the code for MyClass.Down.Simple is:

ClassMethod Simple()
{
Write "Subclass.",!
Do ##super()
}

then the output for subclass method, MyClass.Down.Simple, is:

>Do ##Class(MyClass.Down).Simple()
Subclass.
Superclass.
>
...
Рейтинг: 0 / 0
#super в generator-методах
    #36950764
cache hit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
П.С.М.,

мне нужно вызвать ##super у генератора в compile-time, вопрос как?

Неужели единственное решение - копипаст реализации из базового класса?
...
Рейтинг: 0 / 0
#super в generator-методах
    #36950976
newbie'
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cache hit,
%XML.DataSet.cls(%OnNew+30)
Код: plaintext
$$$GENERATE(" Quit ##super(.initvalue)")
...
Рейтинг: 0 / 0
#super в generator-методах
    #36951605
cache hit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
newbie',

вызов произойдет в run-time, нето
...
Рейтинг: 0 / 0
#super в generator-методах
    #36968697
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cache hitмне нужно вызвать ##super у генератора в compile-time, вопрос как?
Предположу, что использование "объектности" для генераторов в compile-time несколько ограничено.

cache hitНеужели единственное решение - копипаст реализации из базового класса?
Похоже, что так. Достаточно взглянуть, например, на код IsValid класса %TinyInt , который наследован от класса %Integer .
Или используйте методы не генераторы, но в этом случае Вы можете потерять в производительности в run-time.

PS: для других случаев Вам могут пригодиться директивы препроцессоа: ##expression и ##function , которые выполняют некий COS-код/COS-функцию во время компиляции.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / #super в generator-методах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]