2009-08-18 9 views
19

Si j'ai ces deux méthodesC#, XmlDoc: Comment la méthode de référence surcharges

public Foo Get(string bar) { ... } 
public Foo Get(int bar) { ... } 

et écrire ce morceau de documentation xml sur une autre méthode

/// <summary> 
/// Has a close relation to the <see cref="Get"/> methods. 
/// </summary> 

Je reçois un bleu squiggly sous Get , en disant que c'est un Référence ambiguë 'Get'. ce qui est vrai, mais je veux qu'il fasse référence aux deux. Quelle est la bonne façon de faire cela? Ou devrais-je seulement supposé faire référence à une seule surcharge de méthode?

+0

Copie possible de [Comment faire pour créer un cref aux surcharges de méthode dans une balise en C#?] (Https://stackoverflow.com/questions/419702/how-to-make-a-cref-to-method- surcharges-dans-un-seealso-tag-in-c) – binki

Répondre

17

Essayez

/// Has a close relation to the <see cref="Get(string)"/> 
/// and <see cref="Get(int)" /> methods. 

Vous devrez peut-être typenames complet mais IntelliSense devrait aider dès que vous mettez d'abord le support dans.

espoir qui aide,

Dan

+4

Hm ... qui pourrait devenir ennuyeux si vous avez beaucoup de surcharges ... – Svish

+1

En effet! Cependant, si vous avez beaucoup de surcharges qui pourraient être une odeur vous dire qu'il ya un refactor dans les travaux. Gentillesse, Dan –

+2

J'espère vraiment qu'il y aurait un moyen de faire ce que le PO voulait à l'origine. Bien que cette approche soit pratique en l'absence d'un meilleur moyen, elle est également bâclée, en ce sens que la liste d'arguments est un détail de mise en œuvre qui n'est pas pertinent pour la remarque proprement dite. Si, à un moment ultérieur, une troisième surcharge était ajoutée et que cette remarque était oubliée, cela suggérerait à tort que la remarque ne s'applique pas à cette nouvelle surcharge, alors qu'en fait elle l'est probablement. (Je pense que j'ai vu une approche plus proche mais je ne m'en souviens pas malheureusement.) – Kevin

2

Voici une mise à jour répondez à cette vieille question. Je ne suis pas sûr quand cela est devenu valable parce qu'il n'y a pas beaucoup de documentation là-bas. Si vous préfixez un attribut cref avec "o:..." comme dans "o:myMethod()", il sera lié à la section de surcharge et couvrira toutes les surcharges de cette méthode. En utilisant l'exemple de la réponse de Daniel Elliott:

/// Has a close relation to the <see cref="o:Get()"/> methods. 

Cela va également supprimer les avertissements de IntelliSense/ReSharper sur les références ambiguës.

Questions connexes