Comment créer un cref sur les surcharges de méthode dans un < voir aussi > tag en C #?

StackOverflow https://stackoverflow.com/questions/419702

  •  03-07-2019
  •  | 
  •  

Question

Je vois dans les liens MSDN tels que "CompareOrdinal Overloads". Comment puis-je écrire un tel lien en C #?

j'ai essayé:

<seealso cref="MyMethod">MyMethod Overloads</seealso>

Mais le compilateur me prévient d'être une référence ambiguë pour la méthode comportant d'autres surcharges.

(Question du débutant: dois-je écrire cette balise pour créer un lien vers les surcharges ou est-elle générée automatiquement par les processeurs de documentation?)

Était-ce utile?

La solution

La documentation XML ne permet pas de référencer toutes les surcharges d'une méthode.

Sandcastle est le générateur de documentation le plus populaire pour les projets C #. Il créera automatiquement un lien vers une page de liste des surcharges si nécessaire. Ainsi, dans une page de liste des membres, le nom d’une méthode surchargée n’apparaîtra qu’une seule fois. En cliquant dessus, vous accédez à la page de la liste des surcharges de cette méthode, puis à une surcharge spécifique.

Placer un lien vers la page de liste des surcharges dans la documentation XML nécessiterait une connaissance intime de l'outil externe utilisé et probablement pas une bonne idée.

Si vous en avez vraiment besoin, vous pouvez peut-être utiliser une ancre avec un identifiant spécifique. La plupart des générateurs de documents fournissent des moyens mystérieux de pré ou de post-traitement des fichiers générés et devraient vous permettre de choisir ces ancres et de leur fournir un href approprié.

OTH, ça pourrait être plus un problème que sa valeur;)

Autres conseils

Pour cibler des membres spécifiques , je pense que vous faites simplement correspondre la signature:

/// <seealso cref="Foo(int)"/>
static void Foo() { }
/// <seealso cref="Foo()"/>
/// <seealso cref="Foo(float)"/> <------ complains
static void Foo(int a) { }

Pour être honnête, je ne suis pas sûr de savoir comment générer un "toutes les surcharges". lien; Je suppose que tout générateur sensé le fait automatiquement.

Utiliser Sandcastle c'est simple:

<seealso cref="overloads:FullyQualifiedMyMethod">MyMethod Overloads</seealso>

FullyQualifiedMyMethod est la route complète dont vous avez besoin pour atteindre la surcharge, y compris les espaces de noms et les classes, c'est-à-dire: System.Linq.Enumerable.Sum

Cependant, le compilateur VB émet un avertissement indiquant que l'attribut ne peut pas être résolu, ce qui peut être ignoré.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top