Aus Property rausspringen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Artentus.

    Aus Property rausspringen

    Hallo.


    Hätte eine kurze Frage:

    VB.NET-Quellcode

    1. Public Property AntiDouble() As Boolean
    2. Get
    3. Return AntiDoubleBool
    4. End Get
    5. Set(value As Boolean)
    6. If value = AntiDoubleBool Then Exit Property
    7. AntiDoubleBool = value
    8. End Set
    9. End Property



    Ist da ein unterschied zu:


    VB.NET-Quellcode

    1. Public Property AntiDouble() As Boolean
    2. Get
    3. Return AntiDoubleBool
    4. End Get
    5. Set(value As Boolean)
    6. If value = AntiDoubleBool Then Return
    7. AntiDoubleBool = value
    8. End Set
    9. End Property



    Oder behält das Schlüsselwort Return ohne ein Boolean dahinter die ursprüngliche Funktion
    des beendens?

    Was sollte man eher nutzen?
    @Kevin Hombre:: Das ist gleich bedeutend. Du kannst es auch so machen:

    VB.NET-Quellcode

    1. Public Property AntiDouble() As Boolean
    2. Get
    3. Return AntiDoubleBool
    4. End Get
    5. Set(value As Boolean)
    6. If value <> AntiDoubleBool Then
    7. AntiDoubleBool = value
    8. End If
    9. End Set
    10. End Property
    Bei einer einfachen Zuweisung würde ich gar nix testen. Nur wenn extra noch was passiert, was bei Gleichheit nicht passieren muss.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Kevin Hombre schrieb:

    VB.NET-Quellcode

    1. If value = AntiDoubleBool Then Return


    Mich würde eher interessieren, warum man die Zeile überhaupt braucht. Sollten beide Variablen gleich sein, wird mit der nächsten Anweisung doch nichts kaputtgeschossen. So hast du immer eine zusätzliche If-Abfrage drin, die bestimmt zu 90% der Fälle nicht gebraucht wird.

    Aber vielleicht ist es ja Philosophie-Frage, bin also gespannt.

    EDIT: Rod hat es schon beantwortet, ich war also richtig.
    @sonne75
    Ich kenne das aus WPF. Dort muss jede Property bei Änderung das ProperyChanged-Event auslösen, damit es von der GUI bemerkt wird. Und wenn man dieses Event auslösen würde, obwohl sich der Wert nicht geändert hat, dann aktualisiert sich die GUI umsonst. Deswegen wird immer ne einfach Gleichheitsabfrage vor der Zuweisung durchgeführt.
    @Artentus: Das kommt auch auf den Entwickler an, wir bei uns im Unternehmen machen z.B. immer die Abfrage auf ungleichheit :)
    Und meines Wissens nach machen die Menschen von Microsoft in der MSDN das ebenfalls immer so.

    lg. :)
    lg.

    LucaWelker
    @LucaWelker
    Ob du nun auf Gleichheit prüfst und dann rausgehst oder nur bei Ungleichheit was ausführst, kommt im Prinzip aufs selbe hinaus.
    Sonne75 hat gefragt, warum man überhaupt irgendeine Abfrage braucht, und darauf habe ich auch geantwortet. ;)