Thema: Delphi Ist das ein D4 Bug ?

Einzelnen Beitrag anzeigen

tommie-lie
(Gast)

n/a Beiträge
 
#17

Re: hmm,

  Alt 29. Jul 2003, 20:16
Zitat von JoelH:
für mich ist eine Property etwas was von einer Klasse zur Verfügung gestellt wird. Die Farbe der Hose etc.
Genau!
Und wenn ich sage Hose.Farbe := rot, dann verlange ich, daß nachher in diesem Property "rot" drinsteht.

[/quote]Bei mir ist es der Typ des Dokuments, welche man kennen sollte aber nicht verändern darf[/quote]
Dafür sind read-only-Properties da, die haben keine write-Prozedur und denen darf man keinen Wert zuweisen.

Zitat:
Also Property public aber die Variable Private und die Schreibmethode darauf auch.
Hast du nicht eben gesagt, man soll ihn nicht verändern? Was hat denn dann da überhaupt eine Schreibmethode zu suchen? Reichlich wenig, oder?

Zitat:
Natürlich war es ein Designfehler da eh nur die Klasse auf die Var zugreifen kann.
Nein, daß ist nicht der Fehler. Properties sind ja dazu da, daß man nicht die Variablen direkt angeben kann, diese also private halten kann.
Der Fehler ist, daß du dem User erlaubst, etwas zu schreiben, ohne daß das, was er geschrieben hat, in irgendeiner Form berücksichtigt wird. Das ist der Fehler.

Zitat:
Allerdings rechtfertigte dies, in meinen Augen nicht, warum ich was übergeben muss was ich, nachweisslich, nicht brauche.
Du solltest es ja brauchen. D.h. du musst es brauchen, weil der Compiler dies nunmal erwartet.
Deine Prozedur:
Delphi-Quellcode:
procedure Setze_Doc_Type(s:string);
var rueckgabe : String;
begin
  rueckgabe := '';
  if (Document = 'xyz') then
    rueckgabe := 'xy-Typ'
  else
    rueckgabe := 'unknown';
  p_Doc_Type := rueckgabe;
end;
ist eher eine read-Methode (evtl sogar als Fragment für die Funktion, zum Laden des Dokumentes (LoadFromFile?)), aber alles andere als etwas, um einen Wert in ein Property zu schreiben.

Zitat:
Auch wenn der Designfehler da ist gibt es keinen Grund einen inkompatiblen Typ zu melden da man , nachweislich, einfach einen Dummy übergeben kann.
Doch, das ist ein Grund. Denn der Compiler will den Wert irgendwo übergeben. Wohin soll er das machen, wenn er keinen Parameter findet, mit dem er das machen könnte?
  Mit Zitat antworten Zitat