Funktionsaufrufe an ein Member weiterleiten



  • Hallo,

    ich hoffe der Titel ist einigermaßen selbsterklärend.
    Wie kann ich das machen?

    Noch ein Beispielt.

    Ich habe eine Klasse Hund, die dass interface IHund zur Verfügung stellen soll.
    Dieses interface ist jedoch in der Klasse HundImpl implementiert.
    Jetzt müsste ich in meiner Klasse Hund folgendes machen:

    interface IHund
    {
       void Bellen();
       void Sitz();
    }
    
    class Hund : IHund
    {
       private mHundImpl = new HundImpl(); // Hier ist IHund implementiert
       void IHund.Bellen()
       {
           mHundImpl.Bellen();
       }
    
        void IHund.Sitz()
        {
           mHundImpl.Sitz();
        }
    }
    

    Gibt es irgendeinen Automatismus um das in .Net hinzubekommen?



  • Ich verstehe nicht ganz, warum Du nicht von HundImpl ableitest?

    class Hund : private HundImpl
    {
    ...
    }
    

    Wenn du ausserhalb einige Methoden/Eigenschaften von HundImpl benötigst, kannst du diese ja public in der Klasse Hund schreiben, oder versteh ich deinen Fall falsch?

    mfg cx



  • Ja richtig. Diese Lösung funktioniert für ein interface. Bei zwei geht es schon nicht mehr so. Außerdem könnte man dass Verhalten des Objekts! zur Laufzeit ändern.
    Im wesentlichen geht es aber eigentlich nur darum die Schreibarbeit zu sparen.


Log in to reply