2011-11-09 14 views
8

Używam MonoDevelop 2.4.2 dla OS X (wersja dostarczana z Unity 3.4.1) i zastanawiałem się, czy istnieje jakiś sposób dziedziczenia komentarzy z klasy bazowej lub właściwości.XML Komentarze do właściwości Override

Przykład:

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; 

To pytanie wydaje się nieco podobny do Comment Inheritance for C# (actually any language), chociaż jestem dotyczy przede wszystkim, w jaki sposób zachowują się w edytorze w tym momencie, a to jest specyficzne dla MonoDevelop.

Niektóre z rozwiązań w tym pytaniu odnosiły się do < inheritdoc/>, która nie wydaje się być poprawna w MonoDevelop (lub niewłaściwie go używam), a Ghostdoc jest dla Visual Studio.

Wygląda na to, że jedynym rozwiązaniem byłoby skopiowanie komentarzy do właściwości w odziedziczonej klasie. Czy są jakieś alternatywy?

+0

Poszukałbym funkcji OverABABALNE ONABCChanged() dla // Zrobić coś. – CodingBarfield

Odpowiedz

1

Naprawdę nie mogę tego potwierdzić, ale był kiedyś dodatek o nazwie DocFood, który jest teraz częścią MonoDevelop (najnowsza wersja to 2.8. * Myślę). Wypróbuj, myślę, że może on dziedziczyć komentarze z implementacji nadrzędnej.

+0

Dzięki za informacje. Nie słyszałem o tym wcześniej. DocFood wydaje się być wprowadzony jako wtyczka do MonoDevelop 2.4, a następnie zintegrowany z wersją 2.6 (i 2.8). Wtyczka została opracowana przez Mike'a Krügera, ale wygląda na to, że projekt został usunięty z code.google.com, ponieważ linki przestały działać. http://code.google.com/u/111319935500602416334/updates –

+0

Ponieważ Unity używa obecnie MonoDevelop 2.4.2 ... Będę musiał poczekać, aby to sprawdzić. To znaczy, chyba że w międzyczasie uda mi się zdobyć starą wtyczkę. –

Powiązane problemy