powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как вызвать Method из кода, или терминала?
16 сообщений из 16, страница 1 из 1
Как вызвать Method из кода, или терминала?
    #38627320
Reliza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Допустим, есть объявление какого-то класса, где есть, методы класса ClassMethod и Method.
ClassMethod вызывается из кода и терминала:

do ##class(Test.Item).SomeMethod()

,подскажите, как вызывается обычный Method?
...
Рейтинг: 0 / 0
Как вызвать Method из кода, или терминала?
    #38627321
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Method это уже метод самого объекта этого класса. Поэтому его нужно сначала открыть или создать.

Код: plaintext
1.
Set obj=##class(Test.Item).%New()
Do obj.Method()
...
Рейтинг: 0 / 0
Как вызвать Method из кода, или терминала?
    #38627326
Reliza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMor,

Спасибо! Подскажите, а можно ли как-нибудь получить доступ к вызывающему объекту внутри метода?
Допустим метод определен так:Method SomeMethod()  As Test.Item
{
    // ...
    q result
}Т.е. нужно вернуть вызывающий объект в качество результата, или если нужно использовать вызывающий объект внутри метода.
...
Рейтинг: 0 / 0
Как вызвать Method из кода, или терминала?
    #38627334
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам бы почтать документацию, или книжку.

в методе объекта можно обращаться к любым свойствам вызванного объекта и вызывать другие методы указав перед их именем 2 точки. Дляя того чтобы вернуть самого себя есть переменная %this либо ##this

Код: plaintext
Method SomeMethod() 
{
  w ..Name
  D ..OtherMethod()
  Quit %this
}
...
Рейтинг: 0 / 0
Как вызвать Method из кода, или терминала?
    #38627406
ser_shu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMor...
Quit %this
...
В последних версиях рекомендуется использовать $this (%this - устаревшая конструкция).
...
Рейтинг: 0 / 0
Как вызвать Method из кода, или терминала?
    #38627420
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ser_shuDAiMor...
Quit %this
...
В последних версиях рекомендуется использовать $this (%this - устаревшая конструкция).с $this, у меня как-то была засада, передавался не объект а имя класса этого объекта, это было неожиданно.
...
Рейтинг: 0 / 0
Как вызвать Method из кода, или терминала?
    #38627433
ser_shu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMorser_shuпропущено...
В последних версиях рекомендуется использовать $this (%this - устаревшая конструкция).с $this, у меня как-то была засада, передавался не объект а имя класса этого объекта, это было неожиданно.У меня наоборот, при переходе с 2008 на 2010 и 2012 %this подбрасывала странностей, пришлось всё переписать на $this.
...
Рейтинг: 0 / 0
Как вызвать Method из кода, или терминала?
    #38627435
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ser_shuУ меня наоборот, при переходе с 2008 на 2010 и 2012 %this подбрасывала странностей, пришлось всё переписать на $this.А мы переделывали ##this на %this
...
Рейтинг: 0 / 0
Как вызвать Method из кода, или терминала?
    #38627446
ser_shu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMorser_shuУ меня наоборот, при переходе с 2008 на 2010 и 2012 %this подбрасывала странностей, пришлось всё переписать на $this.А мы переделывали ##this на %this##this это макрос, до 2010 он был %this, после стал $this.

Но у меня проблем с $this не было.
...
Рейтинг: 0 / 0
Как вызвать Method из кода, или терминала?
    #38627559
Reliza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использую, ##this - все ок. Чтобы не создавать еще одну тему, спрошу здесь.
Обязательно ли удалять(kill) объекты и переменные, созданные командой set?
Или можно не использовать kill, все удалится само после выхода из области видимости метода?
...
Рейтинг: 0 / 0
Как вызвать Method из кода, или терминала?
    #38627571
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RelizaИспользую, ##this - все ок. Чтобы не создавать еще одну тему, спрошу здесь.
Обязательно ли удалять(kill) объекты и переменные, созданные командой set?
Или можно не использовать kill, все удалится само после выхода из области видимости метода?В большинстве случаев, это не требуется, но это легко проверить, выполнив безаргументный zwrite, который покажет все доступные локальные переменные.
если в классе или в методе отключить параметр ProcedureBlock, то тогда нужно будет их чистить, потому как они останутся.
...
Рейтинг: 0 / 0
Как вызвать Method из кода, или терминала?
    #38627677
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RelizaОбязательно ли удалять(kill) объекты и переменные, созданные командой set?Без кила имел проблемы при смене областей...
Т.е. зашел в процедурку/метод, сменил область, поработал с объектами, сменил область, вышел. Переменные-то пропали... А вот объекты остались кагбэ открытыми...
Теперь всегда киляю.
...
Рейтинг: 0 / 0
Как вызвать Method из кода, или терминала?
    #38627723
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ser_shu##this это макросСинтаксически это директива препроцессора. Макрос начинается на $$$.
...
Рейтинг: 0 / 0
Как вызвать Method из кода, или терминала?
    #38627765
Petr0vi4444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMorс $this, у меня как-то была засада, передавался не объект а имя класса этого объекта, это было неожиданно.В методах класса так и работает.
...
Рейтинг: 0 / 0
Как вызвать Method из кода, или терминала?
    #38628486
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как вызвать Method из кода, или терминала?
    #38628503
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RelizaОбязательно ли удалять(kill) объекты и переменные, созданные командой set?
Или можно не использовать kill, все удалится само после выхода из области видимости метода? 15206965
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как вызвать Method из кода, или терминала?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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