Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185

Проверить возможность вызова метода из другого метода

04.11.2019, 22:22. Показов 2091. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.

Тут возникла мысля, что было бы здорово отследить все возможные вызовы метода Foo() из другого определенного метода Bar(). То есть потенциальные вызовы Foo из ифов, интерфейсов (в реализация внутри сборки), внутри других методов, которые Bar вызывает и тому подобного.

Может кто знает, есть ли где подобный функционал?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.11.2019, 22:22
Ответы с готовыми решениями:

Присвоение переменной одного метода значения из другого метода
Есть метод А(), в которой в переменную int a присваивается 34; И есть метод В(), в которой в переменную int b присваивается А().а :) ...

Многопоточность (завершение работы одного метода при завершении работы другого метода)
Нужна помощь! Как запустить метод во время выполнения другого метода (ну про потоки я кое-чего знаю, так что тут проблем нет), но потом...

Полиморфизм: вызов метода базового класса, переопределенного метода и нового метода
В базовом классе метод помечен как virtual. Насколько я понял из книги: override означает, что метод не утрачивает связи с базовым...

14
 Аватар для Arthur Progy
251 / 167 / 94
Регистрация: 16.09.2019
Сообщений: 457
04.11.2019, 22:34
КОП, тоесть узнать число вызовов метода Foo()?
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
04.11.2019, 22:35  [ТС]
Arthur Progy, количество тоже можно, желательно цепочку вызовов.
Разумеется сделать это надо не запуская код
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16123 / 11247 / 2888
Регистрация: 21.04.2018
Сообщений: 33,073
Записей в блоге: 2
05.11.2019, 08:31
КОП, тоесть получить в проекте все ссылки на этот метод?

Добавлено через 3 минуты
SHIFT+F12 ?
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
05.11.2019, 09:05  [ТС]
Элд Хасп, это потом ручками проходить и искать, что из bar таки может вызваться, а что нет. А их много.
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,228
05.11.2019, 09:22
Разве что ссылки на метод: Ctrl + K, R. Туда войдет определение самого метода, и добавление в делегаты, если есть.

Добавлено через 32 секунды
И глазами искать..

Добавлено через 1 минуту
И тут не должно возникать проблем, так как если не гавнокодить и правильно проектировать, то реализация методов не должна занимать много строк.
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
05.11.2019, 09:38  [ТС]
IamRain, в том и прикол, что проект - кладезь говнокода. А фичу надо сделать и забыть. Вот и надеялся может есть тулза, которая так умеет.
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,228
05.11.2019, 09:43
Ctrl + F в конкретном файле и через Enter прыгать по найденным. Всегда так делаю, особенно в новом проекте, в котором нужно быстро соориентироваться.
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
05.11.2019, 09:51  [ТС]
IamRain, там вызовы по всему солюшену разбросаны. И Ctrl f не даст мне понять, дойдет ли код из Bar до конкретно этой точки вызова. Ну в общем пока про старинке резиновые перчатки по плечо и F12
0
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
05.11.2019, 10:38
КОП, Используйте студию от Jetbrain она имеет базовый функционал указания сколько имеется ссылок на данный метод.
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
05.11.2019, 11:19  [ТС]
Andreyip, меня не интересует количество ссылок как таковое, меня интересует список ссылок которые могут быть вызваны во время выполнения определенного метода. Что то вроде coverage юнит тестов, только с указанием путей входа в нужный мне метод
0
2 / 1 / 1
Регистрация: 03.07.2016
Сообщений: 4
05.11.2019, 14:06
Попробуй использовать PostSharp, там есть функция для автоматического вызова кода трассировки до и после выполнения метода. И на ютубе есть куча видио в которых показано как это сделать
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
05.11.2019, 14:43  [ТС]
TRX, если в if с вызовом не зайдет, то мне ничего и не покажет. Надо что-то из статического анализа кода где все ветви исполнения анализируются.
0
2 / 1 / 1
Регистрация: 03.07.2016
Сообщений: 4
05.11.2019, 14:56
В таком случае, над самим методом, есть информация (references) где он используется. Там можно будет посмотреть все места откуда этот метод вызывается, т.е. этот и есть тот самый список ссылок вызова этого метода
0
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
05.11.2019, 15:10
TRX, о чем я и говорил, но это не то. тут нужна обратная связь как уже написали в 11 сообщении.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.11.2019, 15:10
Помогаю со студенческими работами здесь

Сбой вызова метода из-за отсутствия в [System.Object[]] метода с именем "op_Division"
При разборе скрипта, найденного на просторах интернета (Создание пользовательского объекта), появилась ошибка clear ...

Вызов метода, ожидающего завершение другого метода
Имеется процедура Proc. Я её вызываю в Button. Только вот программа, не дожидаясь завершения процедуры переходит к следующей строчке кода....

Вызов переменной метода из другого метода
class A(): def m(self): number = x #переменный параметр - номер заявки, определяется во время выполнения метода ...

Обращение к переменной метода из другого метода
public class Solution { public static void main(String args) throws Exception { readText(); rectangle(); ...

Вызов метода объекта внутри определения метода другого объекта(вложенные классы)
Как мне вызвать метод объекта slider класса Slider внутри определения метода объекта класса StateBar? class StateBar { public: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru