AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ist ein custom write möglich?

Ein Thema von kagi3624 · begonnen am 6. Feb 2020 · letzter Beitrag vom 6. Feb 2020
Antwort Antwort
einbeliebigername

Registriert seit: 24. Aug 2004
140 Beiträge
 
Delphi XE8 Professional
 
#1

AW: ist ein custom write möglich?

  Alt 6. Feb 2020, 22:45
Hallo,

Kein Mensch braucht die.
Also ich brauche die Properties. Da ich Mensch bin, habe ich hiermit deine Aussage wiederlegt.

Sie haben keinen Mehrwert
Oh doch, haben sie. Ein kleines Beispiel:
Delphi-Quellcode:
type
  TTest= class
  strict private
    fMyValue: Boolean;
    
    procedure SetMyValue(const aMyValue: Boolean);
  public
    property MyValue: Boolean read fMyValue write SetMyValue;
  end;

var
  Test: TTest;
Der lesende Zugriff auf Test.MyValue ist wesentlich performanter und ressourcenschonender als ein Test.GetMyValue , weil der Compiler durch das Feld im read aus dem Test.MyValue dabei ein schlankes Test.fMyValue macht.

und eigentlich nur Nachteile.
Ja es gibt Nachteile. Aber nur weil der Compiler zu dumm ist. Wie oben gezeigt haben die schon Vorteile. Auch das Geter und Seter sinnvoll zusammengefast sind, ist schon ein gewaltiger Vorteil.
property TmpTmp: Boolean read Schöne write Schlecht;
Denn wer bringt dem Compiler bei, dass deine GetXXX / SetXXX immer mit Get / Set anfangen müssen und XXX bei beiden gleich sein muss? Und vor allem wie?

Auch und dann der Objektinspektor, den es ohne Properties bestimmt nicht geben würde.

Die Code-Vervollständigung gibt dir keine Auskunft ob eine Property nur les-, nur schreibbar oder beides ist.
Aber nur weil die zu dumm ist. Der Compiler hat ja auch die Info. Warten wir mal den Umbau der darunter liegenden Technologie ab.

Du kannst Properties nicht als var - oder out -Parameter übergeben.
Ja nur weil der Compiler wiedermal zu dumm ist.

Außer du tippst gerne viel um nicht aus der Übung zu kommen.
Delphi-Quellcode:
var vTmp: Boolean;
begin
  vTmp:= Test.GetMyValue;
  DoTest(vTmp);
  Test.SetMyValue(vTmp);
Wieso soll ich nochmal so viel Unnützes tippen? Da stelle ich doch lieber mal eine Frage zur Anregung. Wieso kann der Compiler aus dem gut lesbaren DoTest(Test.MyValue) nicht selbstständig ein schönes
Delphi-Quellcode:
  var Dummy= Test.fMyValue;
  DoTest(Dummy);
  Test.SetMyValue(Dummy);
machen?

Und schöne wäre bei Parametern auch ein property var , property const , property out und property in . Dann soll ebbend eine Referenz aufs Property rein gegeben werden und nicht nur der Wert rein/raus.

Das sieht man z.B. auch daran dass Sprachen wie Java keine Entsprechung zu Delphi-Properties haben da man wohl gemerkt hat dass man mit einer einfachen Variable oder getXXX() und setXXX()-Methoden besser fährt.
Ach was interessiert mich diese eine Sprache. Die hat viel zu viele Nachteile.
Mit freundlichen Grüßen, einbeliebigername.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz