2011-11-09 12 views
8

Estoy usando MonoDevelop 2.4.2 para OS X (la versión que viene con Unity 3.4.1), y me preguntaba si había alguna forma de heredar comentarios de la clase base o propiedad.XML Comments for Override Properties

Ejemplo:

public class Foo 
{ 
    /// <summary> 
    /// The describes the ABC property 
    /// </summary> 
    public virtual int ABC 
    { 
     get { return _abc; } 
     set { _abc = value; } 
    } 
    protected int _abc; 

    /// <summary> 
    /// The describes the XYZ property 
    /// </summary> 
    public virtual int XYZ 
    { 
     get { return _xyz; } 
     set { _xyz = value; } 
    } 
    protected int _xyz; 
} 

public class Bar : Foo 
{ 
    public override int ABC 
    { 
     set 
     { 
      // DO SOMETHING 
      base.ABC = value; 
     } 
    } 
} 

Bar bar = new Bar(); 

// In MonoDevelop 2.4.2 (OS X), the ABC property doesn't show the comments 
// in the autocomplete popup or when you hover the mouse over the property. 
int abc = bar.ABC; 

// ... but they do show up for XYZ, because it doesn't override 
int xyz = bar.XYZ; 

Esta pregunta parece algo similar a Comment Inheritance for C# (actually any language), aunque soy su mayoría preocupados por la forma en que se comportan en el editor en este punto, y esto es específico de MonoDevelop.

Algunas de las soluciones en esa pregunta se referían a < inheritdoc/>, que no parece ser válido en MonoDevelop (o lo estoy usando incorrectamente), y Ghostdoc es para Visual Studio.

Parece que la única solución sería duplicar los comentarios de la propiedad en la clase heredada. ¿Hay alguna alternativa?

+0

Me gustaría una función OnABCChanged() sobresaliente para // Do Something. – CodingBarfield

Respuesta

1

Realmente no puedo confirmarlo, pero solía haber un complemento llamado DocFood que ahora es parte de MonoDevelop (la última versión es 2.8. * Creo). Pruébalo, creo que puede heredar los comentarios de la implementación principal.

+0

Gracias por la información. No había oído hablar de eso antes. DocFood parece haber sido introducido como un complemento para MonoDevelop 2.4, y luego integrado en 2.6 (y 2.8). El complemento fue desarrollado por Mike Krüger, pero parece que el proyecto se eliminó de code.google.com, ya que los enlaces ya no funcionan. http://code.google.com/u/111319935500602416334/updates –

+0

Dado que Unity está utilizando actualmente MonoDevelop 2.4.2 ... Tendré que esperar para verificarlo. Eso es a menos que pueda obtener el viejo plug-in mientras tanto. –