Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A C#-dokumentáció megjegyzései XML-elemeket használnak a kimeneti dokumentáció szerkezetének meghatározásához. Ennek a funkciónak az egyik következménye, hogy bármilyen érvényes XML-t hozzáadhat a dokumentáció megjegyzéseihez. A C#-fordító ezeket az elemeket a kimeneti XML-fájlba másolja. Bár bármilyen érvényes XML-t használhat megjegyzéseiben (beleértve az érvényes HTML-elemet is), a kód dokumentálása számos okból javasolt.
Az alábbiakban néhány javaslatot, általános használati esetet és az XML-dokumentáció címkéinek C#-kódban való használatakor érdemes tudni. Bár bármilyen címkét elhelyezhet a dokumentáció megjegyzéseibe, ez a cikk a leggyakoribb nyelvi szerkezetekhez ajánlott címkéket ismerteti. Minden esetben be kell tartania ezeket a javaslatokat:
- A konzisztencia érdekében minden nyilvánosan látható típust és azok nyilvános tagjait dokumentálni kell.
- A privát tagok XML-megjegyzések használatával is dokumentálhatók. Ez azonban elérhetővé teszi a tár belső (potenciálisan bizalmas) működését.
- Minimálisan a típusoknak és tagjaiknak címkével
<summary>kell rendelkezniük. - A dokumentáció szövegét teljes mondatokkal kell megírni.
- A részleges osztályok teljes mértékben támogatottak, és a dokumentáció információi minden típushoz egyetlen bejegyzésbe vannak összefűzve. Ha egy részleges tag mindkét deklarációja rendelkezik dokumentációs megjegyzésekkel, a végrehajtási deklarációra vonatkozó megjegyzések a kimeneti XML-be lesznek írva.
Az XML-dokumentáció a következővel ///kezdődik: . Amikor új projektet hoz létre, a sablonok beírnak néhány kezdővonalat /// . A megjegyzések feldolgozása bizonyos korlátozásokkal rendelkezik:
- A dokumentációnak megfelelően formázott XML-nek kell lennie. Ha az XML nem megfelelően formázott, a fordító figyelmeztetést hoz létre. A dokumentációs fájl tartalmaz egy megjegyzést, amely szerint hiba történt.
- Néhány ajánlott címke különleges jelentéssel rendelkezik:
- A
<param>címke a paraméterek leírására szolgál. Használat esetén a fordító ellenőrzi, hogy létezik-e a paraméter, és hogy az összes paraméter szerepel-e a dokumentációban. Ha az ellenőrzés sikertelen, a fordító figyelmeztetést ad ki. - Az
crefattribútum bármely címkéhez csatolható egy kódelemre való hivatkozáshoz. A fordító ellenőrzi, hogy létezik-e ez a kódelem. Ha az ellenőrzés sikertelen, a fordító figyelmeztetést ad ki. A fordító minden utasítástusingtiszteletben tart, amikor azcrefattribútumban leírt típust keres. - A
<summary>címkét az IntelliSense használja a Visual Studióban, hogy további információkat jelenítsen meg egy típusról vagy tagról.Feljegyzés
Az XML-fájl nem nyújt teljes információt a típusról és a tagokról (például nem tartalmaz semmilyen típusinformációt). Egy típussal vagy taggal kapcsolatos teljes információ lekéréséhez használja a dokumentációs fájlt a tényleges típusra vagy tagra vonatkozó tükrözéssel együtt.
- A
- A fejlesztők szabadon hozhatnak létre saját címkéket. A fordító ezeket a címkéket a kimeneti fájlba másolja.
Az ajánlott címkék némelyike bármilyen nyelvi elemen használható. Mások speciálisabb használattal rendelkeznek. Végül a címkék némelyike szöveg formázására szolgál a dokumentációban. Ez a cikk a használatuk szerint rendszerezett ajánlott címkéket ismerteti.
A fordító ellenőrzi az elemek szintaxisát, majd egyetlen * karaktert a következő listában. A Visual Studio biztosítja az IntelliSense-t a fordító által ellenőrzött címkékhez és az összes címkéhez, majd ** a következő listában. Az itt felsorolt címkék mellett a fordító és a Visual Studio ellenőrzi a <b>, <i>, <u>, <br/>és <a> a címkéket. A fordító emellett érvényesíti <tt>az elavult HTML-t is.
Feljegyzés
A HTML-címkék, például <br/> a dokumentáció megjegyzéseinek formázásához hasznosak. A <br/> címke sortöréseket hoz létre, míg más HTML-címkék szövegformázást biztosítanak. Ezek a címkék az IntelliSense elemleírásaiban és a létrehozott dokumentációban működnek.
- Több elemhez használt általános címkék – Ezek a címkék minden API minimális készletét képezik.
-
Tagokhoz használt címkék – Ezek a címkék a metódusok és tulajdonságok dokumentálásakor használatosak.
-
<returns>: Ennek az elemnek az értéke megjelenik az IntelliSense-ben a Visual Studióban. -
<param>*: Ennek az elemnek az értéke megjelenik az IntelliSense-ben a Visual Studióban. <paramref><exception>*-
<value>: Ennek az elemnek az értéke megjelenik az IntelliSense-ben a Visual Studióban.
-
- Dokumentáció kimenetének formázása – Ezek a címkék formázási irányokat biztosítanak a dokumentációt létrehozó eszközökhöz.
-
Dokumentációszöveg újrafelhasználása – Ezek a címkék olyan eszközöket biztosítanak, amelyek megkönnyítik az XML-megjegyzések újrafelhasználását.
<inheritdoc>**<include>*
- Hivatkozások és hivatkozások létrehozása – Ezek a címkék más dokumentációkra mutató hivatkozásokat hoznak létre.
-
Általános típusok és metódusok címkéi – Ezeket a címkéket csak általános típusokon és metódusokon használják
-
<typeparam>*: Ennek az elemnek az értéke megjelenik az IntelliSense-ben a Visual Studióban. <typeparamref>
-
Feljegyzés
A dokumentáció megjegyzései nem alkalmazhatók névtérre.
Ha azt szeretné, hogy szögletes zárójelek jelenjenek meg egy dokumentációs megjegyzés szövegében, használja a html-kódolást<, amely az >< és >a megfelelő. Ez a kódolás az alábbi példában látható.
/// <summary>
/// This property always returns a value < 1.
/// </summary>
Általános címkék
<summary>
<summary>description</summary>
A <summary> címkét egy típus vagy egy típustag leírására kell használni. Kiegészítő <remarks> információkat adhat hozzá egy típusleíráshoz. A cref attribútum használatával engedélyezheti a dokumentációs eszközöket, például a DocFX-et és a Sandcastle-t a kódelemek dokumentációs lapjaira mutató belső hivatkozások létrehozásához. A címke szövege megjelenik az <summary> IntelliSense és az Object Browser ablakban.
<remarks>
<remarks>
description
</remarks>
A <remarks> címke egy típussal vagy típustaggal kapcsolatos információk hozzáadására szolgál, kiegészítve a megadott <summary>információkkal. Ez az információ az Object Browser ablakban jelenik meg. Ez a címke hosszabb magyarázatokat is tartalmazhat. Előfordulhat, hogy a markdown-szakaszok használata CDATA kényelmesebbé teszi az írást. Az olyan eszközök, mint a docfx , szakaszokban CDATA dolgozzák fel a markdown szöveget.
Dokumentumtagok
<returns>
<returns>description</returns>
A <returns> címkét a metódusdeklaráció megjegyzésében kell használni a visszatérési érték leírásához.
<param>
<param name="name">description</param>
-
name: Egy metódusparaméter neve. A nevet idézőjelek közé ("). A paraméterek nevének meg kell egyeznie az API-aláírásnak. Ha egy vagy több paraméter nincs lefedve, a fordító figyelmeztetést ad ki. A fordító figyelmeztetést is ad, ha az értéknamenem egyezik meg a metódusdeklaráció egyik formális paraméterével.
A <param> címkét a metódus deklarációjának megjegyzésében kell használni a metódus egyik paraméterének leírásához. Több paraméter dokumentálásához használjon több címkét <param> . A címke szövege megjelenik az <param> IntelliSense, az Object Browser és a Code Comment webes jelentésben.
<paramref>
<paramref name="name"/>
-
name: A hivatkozni kívánt paraméter neve. A nevet idézőjelek közé (").
A <paramref> címke segítségével jelezheti, hogy a kód megjegyzéseiben szereplő szó, például egy <summary> vagy <remarks> egy blokk egy paraméterre hivatkozik. Az XML-fájl feldolgozható úgy, hogy ezt a szót különböző módon formázza, például félkövér vagy dőlt betűtípussal.
<exception>
<exception cref="member">description</exception>
- cref = "
member": Az aktuális fordítási környezetből elérhető kivételre mutató hivatkozás. A fordító ellenőrzi, hogy létezik-e a megadott kivétel, és a kimeneti XML-ben a canonical elem nevére fordítjamemberle.memberidézőjelek között kell megjelennie (").
A <exception> címke segítségével megadhatja, hogy mely kivételek adhatók meg. Ez a címke alkalmazható metódusok, tulajdonságok, események és indexelők definícióira.
<value>
<value>property-description</value>
A <value> címke lehetővé teszi a tulajdonság által képviselt érték leírását. Amikor a Visual Studio .NET fejlesztői környezetében kódvarázslóval ad hozzá egy tulajdonságot, az hozzáad egy címkét <summary> az új tulajdonsághoz. Manuálisan hozzáadhat egy címkét <value> a tulajdonság által képviselt érték leírásához.
Dokumentáció kimenetének formázása
<para>
<remarks>
<para>
This is an introductory paragraph.
</para>
<para>
This paragraph contains more details.
</para>
</remarks>
A <para> címke egy címkén belül használható, például <summary>, <remarks>vagy <returns>, és lehetővé teszi a szerkezet hozzáadását a szöveghez. A <para> címke dupla szóközzel tagolt bekezdést hoz létre. Ha egyetlen szóközzel tagolt bekezdést szeretne használni, használja a <br/> címkét.
Íme egy példa, amely a következők közötti <para><br/>különbséget mutatja be:
/// <summary>
/// Example using para tags:
/// <para>This is the first paragraph.</para>
/// <para>This is the second paragraph with double spacing.</para>
///
/// Example using br tags:
/// First line of text<br/>
/// Second line of text with single spacing<br/>
/// Third line of text
/// </summary>
public void FormattingExample()
{
// This method demonstrates paragraph and line break formatting
}
<list>
<list type="bullet|number|table">
<listheader>
<term>term</term>
<description>description</description>
</listheader>
<item>
<term>Assembly</term>
<description>The library or executable built from a compilation.</description>
</item>
</list>
A <listheader> blokk egy tábla vagy definíciólista címsorsorának meghatározására szolgál.
Tábla definiálásakor:
- Csak a címsorban kell megadnia egy bejegyzést
term. - A lista minden eleme blokktal
<item>van megadva. Mindegyikhezitemcsak egy bejegyzést kell megadniadescription.
Definíciós lista létrehozásakor:
- Meg kell adnia egy bejegyzést
terma címsorban. - A lista minden eleme blokktal
<item>van megadva. Mindegyiknekitemtartalmaznia kell az atermésdescriptiona .
Egy lista vagy tábla annyi blokkot <item> tartalmazhat, amennyi szükséges.
<c>
<c>text</c>
A <c> címke segítségével jelezheti, hogy a leírásban szereplő szöveget kódként kell megjelölni. Több <code> sort jelölhet kódként.
<code>
<code>
var index = 5;
index++;
</code>
A <code> címke több sornyi kód jelzésére szolgál. Azt <c> jelzi, hogy a leírásban szereplő egysoros szöveget kódként kell megjelölni.
<example>
<example>
This shows how to increment an integer.
<code>
var index = 5;
index++;
</code>
</example>
A <example> címke segítségével megadhat egy példát egy metódus vagy más kódtártag használatára. Ilyen például a <code> címke használata.
<b>
<b>text</b>
A <b> címkével félkövér szöveg jeleníthető meg a dokumentáció megjegyzései között. Ezt a HTML-formázási címkét a fordító és a Visual Studio érvényesíti, és a formázott szöveg megjelenik az IntelliSense-ben és a létrehozott dokumentációban.
<i>
<i>text</i>
A <i> címke a szöveg dőlté tételére szolgál a dokumentációs megjegyzésekben. Ezt a HTML-formázási címkét a fordító és a Visual Studio érvényesíti, és a formázott szöveg megjelenik az IntelliSense-ben és a létrehozott dokumentációban.
<u>
<u>text</u>
A <u> címke a dokumentációs megjegyzések szövegének aláhúzására szolgál. Ezt a HTML-formázási címkét a fordító és a Visual Studio érvényesíti, és a formázott szöveg megjelenik az IntelliSense-ben és a létrehozott dokumentációban.
<br/>
Line one<br/>Line two
A <br/> címke segítségével sortörést szúrhat be a dokumentáció megjegyzéseibe. Ezt a címkét akkor használja, ha egyetlen szóközzel rendelkező bekezdést szeretne használni, szemben a <para> dupla szóközzel tagolt bekezdéseket létrehozó címkével.
<a>
<a href="https://example.com">Link text</a>
A <a> címke hivatkozásokat hoz létre a dokumentáció megjegyzései között. Az href attribútum megadja a hivatkozni kívánt URL-címet. Ezt a HTML-formázási címkét a fordító és a Visual Studio érvényesíti.
Feljegyzés
A fordító emellett ellenőrzi az <tt> elavult HTML-kódú címkét is. Használja inkább a <c> címkét beágyazott kódformázáshoz.
Dokumentáció szövegének újrafelhasználása
<inheritdoc>
<inheritdoc [cref=""] [path=""]/>
XML-megjegyzéseket örököl az alaposztályokból, interfészekből és hasonló metódusokból. A használat inheritdoc kiküszöböli a duplikált XML-megjegyzések nem kívánt másolását és beillesztését, és automatikusan szinkronizálja az XML-megjegyzéseket. Amikor hozzáadja a <inheritdoc> címkét egy típushoz, minden tag örökli a megjegyzéseket is.
-
cref: Adja meg azt a tagot, akitől a dokumentációt örökölni szeretné. Az aktuális tagon már definiált címkéket az örököltek nem bírálják felül. -
path: Az XPath kifejezés lekérdezése, amely egy megjelenítendő csomópontkészletet eredményez. Ezzel az attribútummal szűrheti a címkéket, hogy belefoglalják vagy kizárják az örökölt dokumentációból.
Feljegyzés
A Visual Studio automatikusan örököli az XML-dokumentációt a dokumentált tagokat felülbíráló vagy implementáló nem dokumentált tagok számára. Ez a funkció az Örökölt dokumentációt jeleníti meg az IntelliSense-ben és a Gyors információban a <inheritdoc> címke megkövetelése nélkül. Ez az automatikus öröklés azonban csak a Visual Studio IDE-ben érvényes, és nincs hatással a fordító által létrehozott XML-dokumentációs fájlra.
Az ön által terjesztett kódtárak nyilvános API-jai esetében kifejezetten használja a <inheritdoc> címkét, vagy adjon meg teljes dokumentációt annak érdekében, hogy a létrehozott XML-dokumentációs fájl tartalmazza a tár felhasználói számára szükséges összes információt.
Adja hozzá az XML-megjegyzéseket az alaposztályokhoz vagy felületekhez, és hagyja, hogy az inheritdoc átmásolja a megjegyzéseket az implementálási osztályokba. Adja hozzá az XML-megjegyzéseket a szinkron metódusaihoz, és hagyja, hogy az inheritdoc átmásolja a megjegyzéseket ugyanazon metódusok aszinkron verzióiba. Ha egy adott tag megjegyzéseit szeretné másolni, az cref attribútum használatával adja meg a tagot.
<include>
<include file='filename' path='tagpath[@name="id"]' />
-
filename: A dokumentációt tartalmazó XML-fájl neve. A fájlnév a forráskódfájlhoz viszonyított elérési úttal minősíthető. Idézőjelekfilenameközé (' ') ágyazva. -
tagpath: Annak a címkéknek az elérési útja, amelyfilenamea címkéheznamevezet. Az elérési utat egyetlen idézőjelbe (' ') kell foglalnia. -
name: A megjegyzéseket megelőző címke névkijelölője;namevan egyid. -
id: A megjegyzéseket megelőző címke azonosítója. Az azonosítót idézőjelek közé (").
A <include> címke segítségével egy másik fájlban található megjegyzésekre hivatkozhat, amelyek a forráskódban szereplő típusokat és tagokat írják le. A külső fájlokat is beleszámítva a dokumentáció megjegyzéseit közvetlenül a forráskódfájlba helyezheti. Ha a dokumentációt külön fájlba helyezi, a forráskódtól elkülönítve alkalmazhatja a forrásvezérlőt a dokumentációra. Egy személy kiveheti a forráskódfájlt, valaki más pedig kiveheti a dokumentációs fájlt. A <include> címke az XML XPath szintaxist használja. A használat testreszabásának módjaiért tekintse meg az XPath dokumentációját <include> .
A következő forráskód például a <include> címkét használja megjegyzések belefoglalására. A fájl elérési útja a forráshoz képest van.
namespace MyNamespace;
public class MyType
{
/// <returns>This is the returns text of MyMethod. It comes from triple slash comments.</returns>
/// <remarks>This is the remarks text of MyMethod. It comes from triple slash comments.</remarks>
/// <include file="MyAssembly.xml" path="doc/members/member[@name='M:MyNamespace.MyType.MyMethod']/*" />
public int MyMethod(int p) => p;
}
A belefoglaló fájl XML-forrása az alábbi példában látható. Felépítése megegyezik a C#-fordító által létrehozott XML-fájllal. Az XML-fájl több metódushoz vagy típushoz is tartalmazhat szöveget, amennyiben egy XPath-kifejezés azonosítja őket.
<?xml version="1.0"?>
<doc>
<members>
<member name="M:MyNamespace.MyType.MyMethod">
<param name="p">This is the description of the parameter p of MyMethod. It comes from the included file.</param>
<summary>This is the summary of MyMethod. It comes from the included file.</summary>
</member>
</members>
</doc>
A metódus XML-kimenete a következő példában látható:
<member name="M:MyNamespace.MyType.MyMethod(System.Int32)">
<summary>This is the summary of MyMethod. It comes from the included file.</summary>
<returns>This is the returns text of MyMethod. It comes from triple slash comments.</returns>
<remarks>This is the remarks text of MyMethod. It comes from triple slash comments.</remarks>
<param name="p">This is the description of the parameter p of MyMethod. It comes from the included file.</param>
</member>
Tipp.
A .NET Futtatókörnyezet csapata a címkét széles körben használja a <include> dokumentációjában. Számos példát láthat az dotnet/runtime adattárban való kereséssel.
Hivatkozások és hivatkozások létrehozása
<see>
<see cref="member"/>
<!-- or -->
<see cref="member">Link text</see>
<!-- or -->
<see href="link">Link Text</see>
<!-- or -->
<see langword="keyword"/>
-
cref="member": Az aktuális összeállítási környezetből meghívható tagra vagy mezőre mutató hivatkozás. A fordító ellenőrzi, hogy a megadott kódelem létezik-e, és a kimeneti XML-fájlban adja-e átmemberaz elem nevét. Tag elhelyezése idézőjelek közé ("). A "cref"-hez különböző hivatkozásszöveget adhat meg egy külön zárócímkével. -
href="link": Egy adott URL-címre mutató kattintható hivatkozás. Például egy kattintható hivatkozást hoz létre olyan<see href="https://github.com">GitHub</see>szöveggel GitHub , amely a hivatkozásrahttps://github.commutat. Használja ahrefacrefhelyett, amikor külső weblapokra mutató hivatkozásokat hoz létre, mivel acrefa kódhivatkozásokhoz lett tervezve, és nem hoz létre kattintható hivatkozásokat a külső URL-címekhez. -
langword="keyword": Egy nyelvi kulcsszó, példáultrueegy másik érvényes kulcsszó.
A <see> címke lehetővé teszi a szövegen belüli hivatkozás megadását. Azt <seealso> jelzi, hogy a szöveget egy Lásd még szakaszba kell helyezni.
A cref attribútum használatával belső hivatkozásokat hozhat létre a kódelemek dokumentációs lapjaira. A típusparaméterekkel általános típusra vagy metódusra mutató hivatkozást adhat meg, például cref="IDictionary{T, U}". Emellett egy érvényes attribútum, href amely hivatkozásként működik.
Íme egy példa a külső URL-címekre való hivatkozás különbségére crefhref :
/// <summary>
/// This method demonstrates URL linking:
/// <see cref="https://learn.microsoft.com/dotnet/csharp"/> (won't create clickable link)
/// <see href="https://learn.microsoft.com/dotnet/csharp">C# documentation</see> (creates clickable link)
/// </summary>
public void UrlLinkingExample()
{
// This method demonstrates the difference between cref and href for URLs
}
<seealso>
<seealso cref="member"/>
<!-- or -->
<seealso href="link">Link Text</seealso>
-
cref="member": Az aktuális összeállítási környezetből meghívható tagra vagy mezőre mutató hivatkozás. A fordító ellenőrzi, hogy a megadott kódelem létezik-e, és a kimeneti XML-fájlban adja-e átmemberaz elem nevét.memberidézőjelek között kell megjelennie ("). -
href="link": Egy adott URL-címre mutató kattintható hivatkozás. Például egy kattintható hivatkozást hoz létre olyan<seealso href="https://github.com">GitHub</seealso>szöveggel GitHub , amely a hivatkozásrahttps://github.commutat.
A <seealso> címke segítségével megadhatja, hogy milyen szöveg jelenjen meg egy Lásd még szakaszban. A szövegen belüli hivatkozás megadására használható <see> . A címke nem ágyazható seealso be a summary címkébe.
cref attribútum
Az cref XML-dokumentáció címkéjében szereplő attribútum "kódhivatkozást" jelent. Meghatározza, hogy a címke belső szövege kódelem, például típus, metódus vagy tulajdonság. Az olyan dokumentációs eszközök, mint a DocFX és a Sandcastle , az cref attribútumokkal automatikusan létrehoznak hivatkozásokat arra a lapra, amelyen a típus vagy tag dokumentálva van.
href attribútum
Az href attribútum egy weblapra mutató hivatkozást jelent. Segítségével közvetlenül hivatkozhat az API-ra vagy a tárra vonatkozó online dokumentációra. Ha külső URL-címekre kell hivatkoznia a dokumentáció megjegyzéseiben, az href elemet használja ahelyett cref-t, hogy a hivatkozások rákattinthatók lehessenek az IntelliSense eszköztippeiben és a létrehozott dokumentációban.
Általános típusok és metódusok
<typeparam>
<typeparam name="TResult">The type returned from this method</typeparam>
-
TResult: A típusparaméter neve. A nevet idézőjelek közé (").
A <typeparam> címkét egy általános típus- vagy metódusdeklaráció megjegyzésében kell használni egy típusparaméter leírásához. Adjon hozzá egy címkét az általános típus vagy metódus egyes típusparamétereihez. A címke szövege megjelenik az <typeparam> IntelliSense-ben.
<typeparamref>
<typeparamref name="TKey"/>
-
TKey: A típusparaméter neve. A nevet idézőjelek közé (").
Ezzel a címkével lehetővé teheti a dokumentációs fájl felhasználói számára, hogy a szót különböző módon, például dőlt betűvel formázhassák.
Felhasználó által definiált címkék
A cikkben ismertetett címkék a C#-fordító által felismert címkéket jelölik. A felhasználók azonban szabadon definiálhatják saját címkéiket.
Az olyan eszközök, mint a Sandcastle, támogatják az olyan további címkéket, mint az <event> and <note>, és még a névterek dokumentálását is támogatják.
A szabványos címkékkel egyéni vagy házon belüli dokumentációkészítési eszközök is használhatók, és a HTML-ről PDF-be több kimeneti formátum is támogatott.