2009-08-18 11 views
19

Wenn ich diese beiden Methoden habenC#, XMLDoc: Wie Methode referenzieren Überlastungen

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

Und dieses Stück xml Dokumentation

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

ich einen verschnörkelten unter Get blau erhalten schreiben , sagend, dass es ein ist Mehrdeutiger Hinweis 'erhalten'. Das ist wahr, aber ich möchte, dass es sich auf beides bezieht. Was ist der richtige Weg, dies zu tun? Oder soll ich nur eine einzige Methodenüberladung referenzieren?

+0

Mögliches Duplikat von [Wie ein cref auf Verfahren Überlastungen in einem Tag in C# machen?] (Https://stackoverflow.com/questions/419702/how-to-make-a-cref-to-method- Überlasten-in-a-sehen auch-tag-in-c) – binki

Antwort

17

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

Sie können voll typenames müssen versuchen, aber Intellisense sollte, sobald Sie in die erste Stelle setzen Halter helfen.

Hoffnung, dass

Dan

+4

Hm ... das könnte ärgerlich werden, wenn Sie viele Überbelastungen haben ... – Svish

+1

In der Tat! Wenn Sie jedoch viele Überladungen haben, könnte das ein Geruch sein, der Ihnen sagt, dass ein Refaktor in Arbeit ist. Freundlichkeit, Dan –

+2

Ich würde wirklich hoffen, dass es eine Möglichkeit geben würde zu tun, was das OP ursprünglich wollte. Während dieser Ansatz in Abwesenheit eines besseren Weges praktisch ist, ist er auch schlampig, in dem Sinne, dass die Argumentliste ein Implementierungsdetail ist, das für die tatsächliche Bemerkung, die gemacht wird, nicht relevant ist. Wenn zu einem späteren Zeitpunkt eine dritte Überladung hinzugefügt wurde und diese Bemerkung vergessen wurde, würde dies fälschlicherweise vermuten lassen, dass die Bemerkung nicht auf diese neue Überladung zutrifft, obwohl dies tatsächlich der Fall ist. (Ich glaube, ich habe einen näheren Zugang gesehen, kann mich aber leider nicht daran erinnern.) – Kevin

2

Hier ist eine aktualisierte hilft antworte auf diese alte Frage. Ich bin nicht sicher, wann dies gültig wurde, weil es dort nicht viel Dokumentation gibt. Wenn Sie ein cref Attribut mit "o:..." voranstellen, wie zB in "o:myMethod()", wird es mit dem Überlastungsabschnitt verbunden und deckt alle Überlastungen dieser Methode ab. Daniel Elliott Antwort des Beispiel mit:

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

Dies wird auch entfernen Warnungen von Intellisense/ReSharper über mehrdeutige Verweise.

Verwandte Themen