c # - Deklarere metoder til forældre og børneklasser for at sikre, at de løber sammen

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg kæmper for øjeblikket med udviklingen af ​​en todo liste (for det meste ubetydelig), hvor jeg opretter en grundklasse 'Opgave', som har klasserne 'Note', 'extendedTask' og 'Reminder'. Jeg har også en klasse kaldet 'Udnævnelse', der arver fra påmindelse.


Alle disse klasser implementerer en grænseflade med en metode kaldet 'detaljerShow' Jeg vil have metoden til at blive kaldt fra børnenes klasser og derefter kalde den samme metode fra forældersklassen.


Metoden i basisklassen er defineret som sådan


public virtual string detailsShow()
    {
        return "Description: " + \_taskDescription;
    }


Mens klassen definerer den på denne måde (Bemærk bruges i dette eksempel, da det har det mindste antal variabler)


public override string detailsShow()
    {
        return "Details: " + \_noteDescription;
    }


Jeg formoder, at det er, hvordan jeg har defineret både metoden i basisklassen og metoden i børnenes klasser.


På en anden note, hvordan starter jeg en ny linje i en RichText-boks


(Hvordan jeg vil have det til at se ud)


Stuffhere
Andstuffhere


(hvad jeg får ved hjælp af min metode)


Stuffhere 
Andstuffhere


På forhånd mange tak

Bedste reference


I betragtning af den nuværende struktur af din kode, kan din arvtager kalde det s moderselskab, som i:


public override string detailsShow()
{
    return base.detailsShow() + " Details: " + \_noteDescription;
}


som kunne give noget som:


Description: Stuffhere Details: Andstuffhere


Du kan ikke få en reference til basisklassen Task og tvinge den til at udføre virtual detailsShow, som arvtageren får til at træffe den beslutning.

Andre referencer 1


Du kan ringe detaljerne Vis metode til basisklassen og inkludere Environment.NewLine for at starte en ny linje i RichTextBox:


public override string detailsShow()
{
    return base.detailsShow() + Environment.NewLine + 
        "Details: " + \_noteDescription;
}