Как получить комментарии в IntelliSense для функции в Visual Studio?

139

В Visual Studio и C # при использовании встроенной функции, такой как ToString (), IntelliSense показывает желтое поле, объясняющее, что он делает.

альтернативный текст альтернативный текст

Как я могу иметь это для функций и свойств, которые я пишу?

Али
источник

Ответы:

215

Чтобы создать область, в которой вы можете указать описание функции и каждый параметр функции, введите следующую строку в строке перед функцией и нажмите Enter:

  • C #: ///

  • VB: '''

См. Рекомендованные теги для комментариев к документации (Руководство по программированию в C #) для получения дополнительной информации о структурированном контенте, который вы можете включить в эти комментарии.

Solmead
источник
2
Подчеркнем: это тройная косая черта в C ++ / C # (обычные комментарии - двойная косая черта). А в VB его две одинарные кавычки, а не двойные.
abelenky
1
Это на самом деле три одинарные кавычки в VB
Джоэл Coehoorn
1
На самом деле, в VB это 3 одинарные кавычки: '' '
hometoast
2
В качестве альтернативы, в файле VB вы можете щелкнуть правой кнопкой мыши функцию или класс и нажать «Вставить комментарий». Для C # вы можете использовать StyleCop, который предложит вам написать хорошие заголовки документации
user1069816
GhostDoc - отличный инструмент, который может добавить много текста в комментарии для вас. submain.com/products/ghostdoc.aspx
Карл Гьерцен
74

Что вам нужно, так это xml-комментарии - в основном, они следуют этому синтаксису (смутно описанному Solmead):

C #

///<summary>
///This is a description of my function.
///</summary>
string myFunction() {
     return "blah";
}

VB

'''<summary>
'''This is a description of my function.
'''</summary>
Function myFunction() As String
    Return "blah"
End Function
Томас Ашан
источник
23

<c>text</c>- Текст, который вы хотели бы указать в качестве кода. Тег
< c > позволяет указать, что текст в описании должен быть помечен как код. Используйте < code >, чтобы указать несколько строк в качестве кода.

<code>content</code>- Текст, который вы хотите пометить как код. Тег
< code > дает вам возможность указать несколько строк в виде кода. Используйте < c >, чтобы указать, что текст в описании должен быть помечен как код.

<example>description</example>- Описание примера кода. Тег
< example > позволяет вам указать пример использования метода или другого члена библиотеки. Обычно это связано с использованием тега < code >.

<exception cref="member">description</exception>- описание исключения. Тег
< исключение > позволяет указать, какие исключения могут быть выброшены. Этот тег можно применять к определениям методов, свойств, событий и индексаторов.

<include file='filename' path='tagpath[@name="id"]' />
Тег < include > позволяет вам ссылаться на комментарии в другом файле, которые описывают типы и элементы в вашем исходном коде. Это альтернатива размещению комментариев к документации непосредственно в файле исходного кода. Поместив документацию в отдельный файл, вы можете применять исходный контроль к документации отдельно от исходного кода. Один человек может получить файл исходного кода, а другой - документацию. Тег < include > использует синтаксис XML XPath. Обратитесь к документации XPath, чтобы узнать, как настроить использование < include >.

<list type="bullet" | "number" | "table">
    <listheader>
        <term>term</term>
        <description>description</description>
    </listheader>
    <item>
        <term>term</term>
        <description>description</description>
    </item>
</list>

Блок < listheader > используется для определения строки заголовка таблицы или списка определений. При определении таблицы вам нужно только указать запись для термина в заголовке. Каждый элемент в списке указывается с помощью блока < item >. При создании списка определений вам нужно будет указать термин и описание. Однако для таблицы, маркированного списка или нумерованного списка вам нужно только указать запись для описания. Список или таблица могут содержать столько блоков < item >, сколько необходимо.

<para>content</para>
Тег < para > предназначен для использования внутри тега, такого как < summary >, < remarks > или < return >, и позволяет добавлять структуру к тексту.

<param name="name">description</param>
Тег < param > должен использоваться в комментарии для объявления метода, чтобы описать один из параметров для метода. Чтобы задокументировать несколько параметров, используйте несколько тегов < param >.
Текст для тега < param > будет отображаться в IntelliSense, обозревателе объектов и в веб-отчете с комментариями кода.

<paramref name="name"/>
Тег < paramref > позволяет указать, что слово в комментариях к коду, например, в блоке < summary > или < remarks >, относится к параметру. XML-файл может быть обработан для форматирования этого слова каким-либо отличным способом, например, шрифтом, выделенным жирным или курсивом.

< Тег permission cref="member">description</permission>
< Права > позволяет вам документировать доступ пользователя. Класс PermissionSet позволяет вам указать доступ к члену.

<remarks>description</remarks>
Тег < remarks > используется для добавления информации о типе, дополняя информацию, указанную в < summary >. Эта информация отображается в браузере объектов.

<returns>description</returns>
Тег < return > должен использоваться в комментарии для объявления метода для описания возвращаемого значения.

<see cref="member"/>
Тег < see > позволяет вам указать ссылку из текста. Используйте < seealso >, чтобы указать, что текст должен быть размещен в разделе «См. Также». Используйте атрибут cref для создания внутренних гиперссылок на страницы документации для элементов кода.

<seealso cref="member"/>
Тег < seealso > позволяет вам указать текст, который вы хотите отображать в разделе «См. Также». Используйте < see >, чтобы указать ссылку из текста.

<summary>description</summary>
Тег < summary > должен использоваться для описания типа или члена типа. Используйте < примечания >, чтобы добавить дополнительную информацию в описание типа. Используйте атрибут cref для включения инструментов документации, таких как Sandcastle, для создания внутренних гиперссылок на страницы документации для элементов кода. Текст для тега < summary > является единственным источником информации о типе в IntelliSense, а также отображается в обозревателе объектов.

<typeparam name="name">description</typeparam>
Тег < typeparam > должен использоваться в комментарии для описания обобщенного типа или метода для описания параметра типа. Добавьте тег для каждого параметра типа универсального типа или метода. Текст для тега < typeparam > будет отображаться в IntelliSense, веб-отчете с комментариями к коду обозревателя объектов.

<typeparamref name="name"/>
Используйте этот тег, чтобы разрешить потребителям файла документации форматировать слово каким-либо отличным способом, например курсивом.

<value>property-description</value>
Тег < value > позволяет вам описать значение, которое представляет свойство. Обратите внимание, что при добавлении свойства с помощью мастера кода в среде разработки Visual Studio .NET оно добавляет тег < summary > для нового свойства. Затем вы должны вручную добавить тег < value >, чтобы описать значение, которое представляет свойство.

Максимум
источник
11

Делайте комментарии XML, как это

/// <summary>
/// This does something that is awesome
/// </summary>
public void doesSomethingAwesome() {}
Майкл Уолтс
источник
6
Для параметров добавьте:///<param name="paramName">Tralala</param>
Странник
10

используйте ///, чтобы начать каждую строку комментария, и чтобы комментарий содержал соответствующий xml для читателя метаданных.

///<summary>
/// this method says hello
///</summary>
public void SayHello();

Хотя лично я считаю, что эти комментарии обычно вводят в заблуждение, если только вы не разрабатываете классы, где код не может быть прочитан его потребителями.

DevelopingChris
источник
2
они хороши для быстрых напоминаний или в любом месте, где у вас есть библиотечный код, где, возможно, код читается, но для его получения требуется дополнительная работа.
Джоэл Коухорн
1
Я согласен с вами в теории, но если вы используете эту вещь-призрак, то вы повышаете отношение шум / сигнал до такой степени, что остальные комментарии бесполезны.
DevelopingChris
9

Они называются XML-комментариями . Они были частью Visual Studio с незапамятных времен.

Вы можете упростить процесс документирования с помощью бесплатной надстройки для Visual Studio GhostDoc , которая генерирует для вас комментарии в формате XML. Просто поместите курсор на метод / свойство, которое вы хотите задокументировать, и нажмите Ctrl-Shift-D.

Вот пример из одного из моих постов .

Надеюсь, это поможет :)

Игаль табачник
источник
6

В CSharp: если вы создадите схему метода / функции с ее Parms, то при добавлении трех прямых слешей она автоматически сгенерирует раздел итогов и разделов.

Поэтому я вставил:

public string myMethod(string sImput1, int iInput2)
{
}

Затем я поставил перед ним три /// и Visual Studio дал мне это:

/// <summary>
/// 
/// </summary>
/// <param name="sImput1"></param>
/// <param name="iInput2"></param>
/// <returns></returns>
public string myMethod(string sImput1, int iInput2)
{
}
Semperfi89
источник
6

Определите методы, как это, и вы получите необходимую помощь.

    /// <summary>
    /// Adds two numbers and returns the result
    /// </summary>
    /// <param name="first">first number to add</param>
    /// <param name="second">second number to </param>
    /// <returns></returns>
    private int Add(int first, int second)
    {
        return first + second;
    }

Скриншот использования кода

Речев Йылдыз
источник
4

прочитайте http://msdn.microsoft.com/en-us/library/3260k4x7.aspx Простое указание комментариев не покажет справочные комментарии в intellisense.

user1180781
источник
Они будут, если у вас включены комментарии XML. Смотрите мой ответ ниже.
Suncat2000
2

Все остальные ответы имеют смысл, но они неполны. Visual Studio будет обрабатывать комментарии XML, но вы должны включить их. Вот как это сделать:

Intellisense будет использовать XML-комментарии, которые вы вводите в исходном коде, но вы должны включить их через параметры Visual Studio. Перейти к Tools> Options> Text Editor. Для Visual Basic включите параметр Advanced> Generate XML documentation comments for '''. Для C # включите настройку Advanced> Generate XML documentation comments for ///. Intellisense будет использовать сводные комментарии при вводе. Они будут доступны из других проектов после компиляции ссылочного проекта.

Для создания внешней документации, вам необходимо сгенерировать файл XML через Project Settings> Build> XML documentation file:пути , который управляет компилятор /docопцией. Вам потребуется внешний инструмент, который будет принимать файл XML в качестве входных данных и генерировать документацию в выбранных вами форматах вывода.

Имейте в виду, что создание файла XML может заметно увеличить время компиляции.

Suncat2000
источник
1

Кроме того, ghost doc надстройки для Visual Studio будет пытаться создать и заполнить комментарии в заголовке из названия вашей функции.

Марк Роджерс
источник
0

Solmead имеет правильный ответ. Для получения дополнительной информации вы можете посмотреть на XML Комментарии .

Эд С.
источник