Come creare una cref per il metodo dei sovraccarichi in a < seealso > tag in C #?

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

  •  03-07-2019
  •  | 
  •  

Domanda

Vedo nei collegamenti MSDN come " Sovraccarichi ordinari " ;. Come posso scrivere un tale collegamento in C #?

Ho provato:

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

Ma il compilatore mi dà un avvertimento sull'essere un riferimento ambiguo per il metodo che ha altri sovraccarichi.

(Domanda per principianti: devo davvero scrivere questo tag per collegarmi ai sovraccarichi o è generato automaticamente dai processori di documentazione?)

È stato utile?

Soluzione

La documentazione Xml non ha un mezzo per fare riferimento a tutti i sovraccarichi di un metodo.

Il generatore di documentazione più popolare per i progetti C # è Sandcastle. Se necessario, creerà automaticamente un collegamento a una pagina di elenco degli overload. Quindi in una pagina dell'elenco dei membri il nome di un metodo sovraccaricato apparirà una sola volta, facendo clic su di esso si passerà alla pagina dell'elenco dei sovraccarichi per quel metodo e da lì a un sovraccarico specifico.

Inserire un collegamento alla pagina dell'elenco degli overload nella documentazione Xml richiederebbe una conoscenza approfondita dello strumento esterno utilizzato e probabilmente non è una buona idea.

Se devi davvero avere questo, forse un modo è quello di utilizzare un ancoraggio con un ID formato in modo specifico. La maggior parte dei generatori di documenti fornisce alcuni mezzi arcani per la pre o post elaborazione dei file generati e dovrebbe darti l'opportunità di scegliere questi ancoraggi e fornire loro un href appropriato.

OTH, potrebbe essere più un problema che un valore;)

Altri suggerimenti

Per scegliere come target membri specifici , credo che abbini solo la firma:

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

Ad essere sincero, non sono sicuro di come generare un " tutti i sovraccarichi " Link; Suppongo che qualsiasi generatore sensibile lo abbia fatto automaticamente.

Usando Sandcastle è semplice:

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

FullyQualifiedMyMethod è il percorso completo necessario per raggiungere il sovraccarico, inclusi spazi dei nomi e classi, ad esempio: System.Linq.Enumerable.Sum

Tuttavia, il compilatore VB emette un avviso che dice che l'attributo non può essere risolto, che può essere ignorato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top