virtuelle konstanten?



  • Nun, du verpasst der Klasse A einfach eine virtuelle Funktion "GetKonstante()", und überschreibst diese in B.
    A.tuwas() ruft dann einfach GetKonstante() auf um den Wert zu beziehen.



  • Hehe, ne Eigenschaft geht aber auch =o)



  • Achja, .NET sind wir hier, hatte ich vergessen die Properties 🙂



  • Knuddlbaer schrieb:

    Kontanten heißen so weil sie feste unveränderliche Werte darstellen - da is nix mit verbergen o.Ä.

    Schreib ein virtuelles Propertie, das die Konstante zurück gibt. Verwene dieses in der Basis und überall sonst wo.

    Kauf Dich mal eine Duden, hat mich auch gehelft...



  • Nur 2 Fehler in 2 Sätzen. Ist doch ein sehr guter Schnitt für mich ;o)



  • hustbaer schrieb:

    Achja, .NET sind wir hier, hatte ich vergessen die Properties -)

    [klugscheiss]
    aber nicht wegen .NET, sondern in C# gibt es Properties...
    (technisch gesehen sind Properties aber eh nur Funktionen: T getX() und void setX(T t) -)
    [/klugscheiss]

    P.S.

    Knuddlbaer schrieb:

    Nur 2 Fehler in 2 Sätzen. Ist doch ein sehr guter Schnitt für mich ;o)

    Und nun sogar fehlerfrei, wow! -)



  • Th69 schrieb:

    [klugscheiss]
    aber nicht wegen .NET, sondern in C# gibt es Properties...
    (technisch gesehen sind Properties aber eh nur Funktionen: T getX() und void setX(T t) -)
    [/klugscheiss]

    Nicht ganz korrekt kluggescheißt 😉 Properties sind in der Tat ein .Net Feature, und haben auch in der CIL entsprechende spezielle Ausdrücke. Was bei Properties als Methode realisiert sind, sind der Getter und Setter, aber nicht das Property an sich.



  • Talla scheint die CIL gut zu kennen 🤡

    Ist die Möglichkeit virtual bei einer Eigenschaft zu verwenden nun sprachspezifisch oder wird dies durch die CIL garantiert ?
    Eventuell kannst Du das aus dem Stehgreif sagen, ansonsten würde ich natürlich auch selbst nachlesen.



  • Äh, heißt das nicht "kluggeschissen"? *SCNR*



  • @Talla: so hatte ich das auch in Erinnerung.
    Es muss allerdings soweit ich weiss nicht jede .NET Sprache Properties auch mit irgendeiner Property-Syntax unterstützen, sondern es reicht wenn man z.B. die getter/setter irgendwie aufrufen kann, also z.B. obj.set_Lala(123) oder ähnliches.



  • Knuddlbaer schrieb:

    Ist die Möglichkeit virtual bei einer Eigenschaft zu verwenden nun sprachspezifisch oder wird dies durch die CIL garantiert ?
    Eventuell kannst Du das aus dem Stehgreif sagen, ansonsten würde ich natürlich auch selbst nachlesen.

    Das garantiert CIL:

    ECMA-335, 8.11.3 schrieb:

    CLS Rule 26: All property's accessors shall be static, all be virtual, or all be instance.

    Andererseits kann eine Sprache natürlich verbieten, eine Property als 'virtual' markieren zu können.


Anmelden zum Antworten