Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 14.11.2014
Сообщений: 48

GetMethods и описание методов

05.08.2018, 18:03. Показов 1927. Ответов 8

Студворк — интернет-сервис помощи студентам
Вытаскиваю имена методов
C#
1
2
3
4
Type t = typeof(test);
                        MethodInfo[] methods = t.GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);
                        foreach (MethodInfo method in methods)
                        Console.WriteLine(method.Name);
Существуют ли какие-то инструменты при объявлении метода, в которые можно написать что он делает и как-то получать это описание вместе с именем?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.08.2018, 18:03
Ответы с готовыми решениями:

Описание параметров функций и методов
В .net при выборе того же метода ToString() выскакивает всплывающая подсказка с описанием этого метода. Как можно сделать подобное для...

Добавить описание классов и методов в коде
Если в студии в коде навести мышь на класс, метод, поле и тд, - появляется их описание. Как добавить такое описание своим классам или...

Создать интерфейс, который содержит описание методов
создать интерфейс, который содержит описание методов определения расстояния от точки до плоскости и метод проверки принадлежности этой...

8
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
05.08.2018, 18:20
Нет, XML-комментарии анализируются VS и другими инструментами для создания документации, но, как и обычные комментарии, не включаются в сгенерированную сборку, поэтому метаданные типа не знают о них.

https://stackoverflow.com/ques... reflection
1
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
05.08.2018, 18:21
в комментах можно использовать конструкцию summary, вот официальное описание:
https://docs.microsoft.com/ru-... oc/summary
1
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,897
Записей в блоге: 1
05.08.2018, 19:23
GospodinVedushi, можно добавить к методу атрибут Description и читать его через reflection. Или использовать XML комментарии и читать описание из XML файла.

В чем вообще суть задачи?
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
05.08.2018, 19:48
OwenGlendower, суть задачи - взять чужую DLL, и красиво подготовить себе файл документации.
К сожалению, пишут, что так нельзя.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,897
Записей в блоге: 1
05.08.2018, 19:51
Цитата Сообщение от amr-now Посмотреть сообщение
суть задачи - взять чужую DLL, и красиво подготовить себе файл документации.
Мне непонятно почему ты так решил. В вопросе ТС про это нет ни слова.
0
0 / 0 / 0
Регистрация: 14.11.2014
Сообщений: 48
05.08.2018, 20:16  [ТС]
OwenGlendower, я просто пытаюсь разобраться .И задал вопрос, на который ответ самостоятельно не нашел.
0
Эксперт .NET
 Аватар для Rius
13131 / 7691 / 1677
Регистрация: 25.05.2015
Сообщений: 23,464
Записей в блоге: 14
05.08.2018, 21:33
GospodinVedushi,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using System;
using System.ComponentModel;
using System.Reflection;
 
namespace ConsoleAppGospodinVedushi
{
    class Program
    {
        static void Main(string[] args)
        {
            Type t = typeof(Program);
 
            MethodInfo[] methods = t.GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);
 
            foreach (MethodInfo method in methods)
            {
                var attr = method.GetCustomAttribute<DescriptionAttribute>();
                Console.WriteLine($"Method: {method.Name} ({attr?.Description})");
            }
        }
 
        [Description("Demo method")]
        public void DemoMethod()
        {
        }
    }
}
Но это если изучаемый код подконтролен вам и вы можете добавить атрибут.
1
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
06.08.2018, 13:59
Случайно нашёл официальное подтверждение:
"Комментарии XML-документации не являются метаданными. Они не включаются в скомпилированную сборку, и поэтому не доступны посредством отражения. "
https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/xmldoc/xml-documentation-comments
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.08.2018, 13:59
Помогаю со студенческими работами здесь

F12. Можно ли как то увидеть реализацию методов в классах, а не просто описание
при нажатии f12 мы переходим в класс на котором стоял указатель, допустим system.io или любой другой апишный класс, так вот можно ли как...

Напишите процедуру, создающую массив строк, каждая из которых содержит описание одного из методов класса
Всем привет. Помогите пожалуйста. Исходный текст представляет описание класса на C#. Напишите процедуру, создающую массив строк,...

Описание методов реализации
Помогите описать методы реализации по программе. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;sstream&gt; ...

Полное описание методов у RecordSet
Господа (граждане, товарищи,...), программисты! Где можно посмотреть полное описание (или хотя бы просто список) методов у RecordSet? ...

Описание методов класса в другом файле
Доброго времени суток!!! Возможно в php сам класс описать в одном файле, а его методы и свойства описывать в другом?


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru