2009-08-18 5 views
19

Si tengo estos dos métodosC#, xmlDoc: cómo hacer referencia a método sobrecargas

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

y escribir esta pieza de la documentación XML en un método diferente

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

consigo un azul ondulada bajo Get , diciendo que es Referencia ambigua 'Obtener'. lo cual es cierto, pero quiero que haga referencia a ambos. ¿Cuál es la forma correcta de hacer esto? ¿O debería solo se supone que hago referencia a una sola sobrecarga de método?

+0

Posible duplicado de [¿Cómo hacer un cref para sobrecargar el método en una etiqueta en C#?] (Https://stackoverflow.com/questions/419702/how-to-make-a-cref-to-method- overloads-in-a-seealso-tag-in-c) – binki

Respuesta

17

Trate

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

Es posible que necesite typenames completos pero intelisense debe ayudar tan pronto como ponga primer soporte en.

Espero que ayude,

Dan

+4

Hm ... que podría ser molesto si tienes muchas sobrecargas ... – Svish

+1

¡De hecho! Sin embargo, si tiene muchas sobrecargas que podrían ser un olor que le dice que hay un refactor en proceso. Amabilidad, Dan –

+2

Realmente espero que haya alguna manera de hacer lo que el OP originalmente quería. Si bien este enfoque es práctico en ausencia de una mejor manera, también es descuidado, en el sentido de que la lista de argumentos es un _elemento de implementación_ que no es relevante para la observación real que se está realizando. Si en algún momento posterior se añadiera una tercera sobrecarga y se olvidara esta observación, sugeriría incorrectamente que la observación no se aplica a esa nueva sobrecarga cuando en realidad probablemente sí lo haga. (Creo que he visto un enfoque más cercano, pero no puedo recordarlo por desgracia). – Kevin

2

Aquí está una versión actualizada responde a esta vieja pregunta No estoy seguro de cuándo esto se convirtió en válido porque no hay mucha documentación por ahí. Si prefija un atributo cref con "o:...", como en "o:myMethod()", se vinculará a la sección de sobrecarga y cubrirá todas las sobrecargas de ese método. Usando el ejemplo de la respuesta de Daniel Elliott:

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

Esto también eliminará las advertencias de Intellisense/ReSharper sobre referencias ambiguas.

Cuestiones relacionadas