Come avere commenti in IntelliSense per la funzione in Visual Studio?


139

In Visual Studio e C #, quando si utilizza una funzione integrata come ToString (), IntelliSense mostra una casella gialla che spiega cosa fa.

testo alternativo testo alternativo

Come posso averlo per le funzioni e le proprietà che scrivo?

Risposte:


215

Per generare un'area in cui è possibile specificare una descrizione per la funzione e ciascun parametro per la funzione, digitare quanto segue sulla riga prima della funzione e premere Enter:

  • C #: ///

  • VB: '''

Vedere Tag consigliati per i commenti sulla documentazione (Guida per programmatori C #) per ulteriori informazioni sul contenuto strutturato che è possibile includere in questi commenti.


2
Per sottolineare: questa è una tripla barra in C ++ / C # (i commenti normali sono una doppia barra). E in VB, le sue due virgolette singole, non una doppia virgoletta.
abelenky,

1
In realtà sono tre virgolette singole in vb
Joel Coehoorn,

1
In realtà, in VB, sono 3 virgolette singole: '' '
hometoast

2
In alternativa, in un file VB è possibile fare clic con il tasto destro su una funzione o classe e fare clic su "Inserisci commento". Per C # puoi usare StyleCop che ti chiederà di scrivere buone intestazioni della documentazione
user1069816

GhostDoc è un ottimo strumento che può aggiungere molto del testo nei commenti per te. submain.com/products/ghostdoc.aspx
Karl Gjertsen,

74

Ciò di cui hai bisogno sono i commenti xml - sostanzialmente, seguono questa sintassi (come vagamente descritto da 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>- Il testo che desideri indicare come codice.
Il tag < c > consente di indicare che il testo all'interno di una descrizione deve essere contrassegnato come codice. Utilizzare < codice > per indicare più righe come codice.

<code>content</code>- Il testo che desideri contrassegnato come codice.
Il tag < code > ti consente di indicare più righe come codice. Utilizzare < c > per indicare che il testo all'interno di una descrizione deve essere contrassegnato come codice.

<example>description</example>- Una descrizione dell'esempio di codice.
Il tag < esempio > consente di specificare un esempio di come utilizzare un metodo o un altro membro della libreria. Ciò comporta comunemente l'utilizzo del tag < code >.

<exception cref="member">description</exception>- Una descrizione dell'eccezione.
Il tag < exception > consente di specificare quali eccezioni possono essere generate. Questo tag può essere applicato alle definizioni per metodi, proprietà, eventi e indicizzatori.

<include file='filename' path='tagpath[@name="id"]' />
Il tag < include > ti consente di fare riferimento ai commenti in un altro file che descrivono i tipi e i membri nel tuo codice sorgente. Questa è un'alternativa all'inserimento dei commenti della documentazione direttamente nel file del codice sorgente. Inserendo la documentazione in un file separato, è possibile applicare il controllo del codice sorgente alla documentazione separatamente dal codice sorgente. Una persona può avere il file di codice sorgente estratto e qualcun altro può avere il file di documentazione estratto. Il tag < include > utilizza la sintassi XML XPath. Fare riferimento alla documentazione di XPath per i modi per personalizzare l'uso di < include >.

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

Il blocco < listheader > viene utilizzato per definire la riga di intestazione di una tabella o di un elenco di definizioni. Quando si definisce una tabella, è necessario fornire solo una voce per termine nell'intestazione. Ogni elemento nell'elenco è specificato con un blocco < item >. Quando si crea un elenco di definizioni, è necessario specificare sia il termine che la descrizione. Tuttavia, per una tabella, un elenco puntato o un elenco numerato, è necessario fornire solo una voce per la descrizione. Un elenco o una tabella può avere tutti i blocchi < item > necessari.

<para>content</para>
Il tag < para > deve essere utilizzato all'interno di un tag, ad esempio < riepilogo >, < note > o < restituzioni >, e consente di aggiungere struttura al testo.

<param name="name">description</param>
Il tag < param > dovrebbe essere usato nel commento per una dichiarazione del metodo per descrivere uno dei parametri per il metodo. Per documentare più parametri, utilizzare più tag < param >.
Il testo per il tag < param > verrà visualizzato in IntelliSense, nel browser degli oggetti e nel rapporto Web dei commenti di codice.

<paramref name="name"/>
Il tag < paramref > fornisce un modo per indicare che una parola nei commenti del codice, ad esempio in un blocco < riepilogo > o < note >, fa riferimento a un parametro. Il file XML può essere elaborato per formattare questa parola in un modo distinto, ad esempio con un carattere grassetto o corsivo.

< permission cref="member">description</permission>
Il tag < permesso > ti consente di documentare l'accesso di un membro. La classe PermissionSet consente di specificare l'accesso a un membro.

<remarks>description</remarks>
Il tag < note > viene utilizzato per aggiungere informazioni su un tipo, integrando le informazioni specificate con < riepilogo >. Queste informazioni sono visualizzate nel Browser degli oggetti.

<returns>description</returns>
Il tag < Returns > dovrebbe essere usato nel commento per una dichiarazione del metodo per descrivere il valore di ritorno.

<see cref="member"/>
Il tag < see > consente di specificare un collegamento all'interno del testo. Utilizzare < seealso > per indicare che il testo deve essere inserito in una sezione Vedi anche. Utilizzare l'attributo cref per creare collegamenti ipertestuali interni alle pagine della documentazione per gli elementi di codice.

<seealso cref="member"/>
Il tag < seealso > ti consente di specificare il testo che potresti voler visualizzare in una sezione Vedi anche. Utilizzare < vedi > per specificare un collegamento all'interno del testo.

<summary>description</summary>
Il tag < Summary > dovrebbe essere usato per descrivere un tipo o un membro del tipo. Utilizzare < osservazioni > per aggiungere informazioni supplementari a una descrizione del tipo. Utilizzare l'attributo cref per abilitare strumenti di documentazione come Sandcastle per creare collegamenti ipertestuali interni alle pagine della documentazione per gli elementi di codice. Il testo per il tag < riepilogo > è l'unica fonte di informazioni sul tipo in IntelliSense e viene visualizzato anche nel browser degli oggetti.

<typeparam name="name">description</typeparam>
Il tag < typeparam > dovrebbe essere usato nel commento per un tipo generico o una dichiarazione di metodo per descrivere un parametro di tipo. Aggiungi un tag per ciascun parametro di tipo del tipo o metodo generico. Il testo per il tag < typeparam > verrà visualizzato in IntelliSense, il report Web di commento del codice del browser degli oggetti.

<typeparamref name="name"/>
Utilizzare questo tag per consentire agli utenti del file di documentazione di formattare la parola in un modo distinto, ad esempio in corsivo.

<value>property-description</value>
Il tag < value > ti consente di descrivere il valore rappresentato da una proprietà. Si noti che quando si aggiunge una proprietà tramite la procedura guidata per il codice nell'ambiente di sviluppo di Visual Studio .NET, verrà aggiunto un tag < riepilogo > per la nuova proprietà. È quindi necessario aggiungere manualmente un tag < valore > per descrivere il valore rappresentato dalla proprietà.


11

Fai commenti XML, in questo modo

/// <summary>
/// This does something that is awesome
/// </summary>
public void doesSomethingAwesome() {}

6
Per i parametri aggiungere:///<param name="paramName">Tralala</param>
The Oddler

10

utilizzare /// per iniziare ogni riga del commento e fare in modo che il commento contenga l' xml appropriato per il lettore di metadati.

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

Sebbene personalmente, ritengo che questi commenti siano generalmente fuorviati, a meno che non si stiano sviluppando classi in cui il codice non può essere letto dai suoi consumatori.


2
sono utili per i promemoria delle scorciatoie, o ovunque tu abbia un codice di libreria dove forse il codice è leggibile ma ci vuole un po 'di lavoro extra per arrivarci.
Joel Coehoorn,

1
Sono d'accordo con te in teoria, ma se usi quella cosa ghostdoc, stai aumentando il rapporto rumore / segnale a tal punto che il resto dei commenti sono inutili.
DevelopingChris,

9

Questi sono chiamati commenti XML . Fanno parte di Visual Studio da sempre.

Puoi semplificare il processo di documentazione utilizzando GhostDoc , un componente aggiuntivo gratuito per Visual Studio che genera commenti XML-doc per te. Posiziona il cursore sul metodo / proprietà che desideri documentare e premi Ctrl-Maiusc-D.

Ecco un esempio da uno dei miei post .

Spero che aiuti :)


6

In CSharp, se crei la struttura del metodo / funzione con i suoi Parms, quando aggiungi le tre barre in avanti genererà automaticamente la sezione di riepilogo e parms.

Quindi ho inserito:

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

Ho quindi messo i tre /// prima e Visual Studio mi ha dato questo:

/// <summary>
/// 
/// </summary>
/// <param name="sImput1"></param>
/// <param name="iInput2"></param>
/// <returns></returns>
public string myMethod(string sImput1, int iInput2)
{
}

6

Definisci metodi come questo e otterrai l'aiuto di cui hai bisogno.

    /// <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;
    }

Schermata dell'utilizzo del codice



2

Tutte queste altre risposte hanno un senso, ma sono incomplete. Visual Studio elaborerà i commenti XML ma è necessario attivarli. Ecco come farlo:

Intellisense utilizzerà i commenti XML inseriti nel codice sorgente, ma è necessario abilitarli tramite le opzioni di Visual Studio. Vai a Tools> Options> Text Editor. Per Visual Basic, abilitare l' impostazione Advanced> Generate XML documentation comments for '''. Per C #, abilitare l' impostazione Advanced> Generate XML documentation comments for ///. Intellisense utilizzerà i commenti di riepilogo quando inseriti. Saranno disponibili da altri progetti dopo la compilazione del progetto di riferimento.

Per creare esterna documentazione, è necessario generare un file XML attraverso il Project Settings> Build> XML documentation file:percorso che i controlli del compilatore /docopzione. Sarà necessario uno strumento esterno che prenderà il file XML come input e genererà la documentazione nella scelta dei formati di output.

Tenere presente che la generazione del file XML può aumentare notevolmente i tempi di compilazione.


1

Inoltre, il documento fantasma del componente aggiuntivo di Visual Studio tenterà di creare e compilare i commenti dell'intestazione dal nome della funzione.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.