Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как получить имя класса и метода в котором происходит выполнение
|
|||
|---|---|---|---|
|
#18+
Как получить имя класса и метода в коде метода при его выполении? Для лучшего понимания вопроса пример: Class Functions [ Abstract ] { ClassMethod Function1() As %String { set a=<имя класса>_" "_<имя метода> quit a } } Хотелось бы чтобы функция Function1 возвращала строку "Functions Function1". Есть такая возможность? Подскажите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2011, 14:59 |
|
||
|
Как получить имя класса и метода в котором происходит выполнение
|
|||
|---|---|---|---|
|
#18+
Denis S. , про имя класса видел в документации вот такую фигню Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Попробовал на своём классе Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2011, 15:27 |
|
||
|
Как получить имя класса и метода в котором происходит выполнение
|
|||
|---|---|---|---|
|
#18+
во время выполнения есть метод %ClassName(1) предложенный krvsa, будет доступен во время компиляции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2011, 15:29 |
|
||
|
Как получить имя класса и метода в котором происходит выполнение
|
|||
|---|---|---|---|
|
#18+
А рядом и про метод со свойствами немного было... Т.ч. для тебя вот полный комплект Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2011, 15:29 |
|
||
|
Как получить имя класса и метода в котором происходит выполнение
|
|||
|---|---|---|---|
|
#18+
Denis S., еще Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2011, 15:35 |
|
||
|
Как получить имя класса и метода в котором происходит выполнение
|
|||
|---|---|---|---|
|
#18+
DAiMorпредложенный krvsa, будет доступен во время компиляции Не совсем так... Доступно все всегда. Просто сам текст метода будет писаться во время компилляции класса и там будут эти значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2011, 15:39 |
|
||
|
Как получить имя класса и метода в котором происходит выполнение
|
|||
|---|---|---|---|
|
#18+
krvsaDAiMorпредложенный krvsa, будет доступен во время компиляции Не совсем так... Доступно все всегда. Просто сам текст метода будет писаться во время компилляции класса и там будут эти значения. я имел ввиду, что все варианты получения методы, будут доступны только во время компиляции, т.е. чтобы использовать эти значения нужно писать генератор кода метода, что не есть удобно в обычном методе, можно получить только имя класса через %ClassName(1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2011, 16:53 |
|
||
|
Как получить имя класса и метода в котором происходит выполнение
|
|||
|---|---|---|---|
|
#18+
имя класса typeid(*this).name() ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2011, 17:29 |
|
||
|
Как получить имя класса и метода в котором происходит выполнение
|
|||
|---|---|---|---|
|
#18+
DAiMor , %ClassName(1) будет, только если наследоваться от %RegisteredObject. LeonM, Если надо именно runtime определять, то можно придумать какой-нибудь извращенный метод, например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. Но я не уверен, что мой пример будет работать в 100% случаях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 08:19 |
|
||
|
Как получить имя класса и метода в котором происходит выполнение
|
|||
|---|---|---|---|
|
#18+
Denis S. , Вы не указали версию Caché, поэтому привожу код для 2011.1.RC1: Include %occIO Class del.c [Abstract] { ClassMethod test() { w "Имя метода = ",$$$CurrentMethod,! w "имя класса = ",$classname(),! w "имя класса = ",$this,! } } Результат: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 08:56 |
|
||
|
Как получить имя класса и метода в котором происходит выполнение
|
|||
|---|---|---|---|
|
#18+
servitпривожу код для 2011.1.RC1 В сравнении с моим 2007 - небо и земля! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 09:01 |
|
||
|
Как получить имя класса и метода в котором происходит выполнение
|
|||
|---|---|---|---|
|
#18+
krvsaservitпривожу код для 2011.1.RC1В сравнении с моим 2007 - небо и земля! Для предыдущих версий код ненамного сложнее, например для версии 5.0.х: Class del.c [ Abstract, ProcedureBlock ] { ClassMethod test() { w "Имя метода = ",##expression(""""_$get(%methodname)_""""),! w "Имя класса = ",##expression(""""_$get(%classname)_""""),! } } Class del.d Extends (%RegisteredObject, del.c) [ ProcedureBlock ] { } Результат: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 09:48 |
|
||
|
Как получить имя класса и метода в котором происходит выполнение
|
|||
|---|---|---|---|
|
#18+
про такой способ получения класса и метода не знал а может еще есть способ получения имени последней метки в программе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 10:46 |
|
||
|
Как получить имя класса и метода в котором происходит выполнение
|
|||
|---|---|---|---|
|
#18+
DAiMor, Что-то типа $STACK($STACK,"PLACE") ? Только в тестовых запусках из терминала у меня плохо работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 12:11 |
|
||
|
Как получить имя класса и метода в котором происходит выполнение
|
|||
|---|---|---|---|
|
#18+
Блок А.Н.DAiMor, Что-то типа $STACK($STACK,"PLACE") ? Только в тестовых запусках из терминала у меня плохо работает. Работает хорошо. Не забывайте про s $EC="" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 13:57 |
|
||
|
Как получить имя класса и метода в котором происходит выполнение
|
|||
|---|---|---|---|
|
#18+
servitkrvsaпропущено... В сравнении с моим 2007 - небо и земля! Для предыдущих версий код ненамного сложнее, например для версии 5.0.х: Class del.c [ Abstract, ProcedureBlock ] { ClassMethod test() { w "Имя метода = ",##expression(""""_$get(%methodname)_""""),! w "Имя класса = ",##expression(""""_$get(%classname)_""""),! } } Class del.d Extends (%RegisteredObject, del.c) [ ProcedureBlock ] { } Результат: Код: plaintext 1. 2. 3. 4. 5. 6. Ваш метод, тоже design-time: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Мой - runtime, но может работать криво, если имя метода начинается с буквы "z". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 14:03 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=37300723&tid=1557722]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
171ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 482ms |

| 0 / 0 |
