Einzelnen Beitrag anzeigen

idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#7

AW: With und Klassenmethoden

  Alt 16. Aug 2015, 01:11
Die Verwendung von with ist genau deswegen böse weil es schon ein implizites with in Methoden gibt.
Die Argumentation ist allerdings wirklich verblüffend. Weil mein Bäcker Semmeln verkauft, sollte er endlich aufhören, Kornweckerl zu backen.


In einer Methode ist der Self Kontext (Instanz oder Typ) klar definiert. Kommt nun ein weiterer (oder sogar mehrere) hinzu wird es unübersichtlich.
und bei einem with ist der Kontext nicht klar definiert????


Probleme, wenn bei einer Klasse, die man verwendet, in einer späteren Version Dinge geändert werden, sind tatsächlich eine mögliche Fehlerquelle - wobei ich allerdings meinen würde, dass derartige Probleme extrem selten sein dürften, und dass mit derartigen Änderungen meist auch Änderungen im Verhalten von Klassen einhergehen werden, die in allen möglichen anderen Hinsichten eher Probleme machen werden.
Und es wäre ja auch leicht realisierbar, eine entsprechende Compilerwarnung auszugeben, wenn das Feld eines Records in einer with-Anweisung eine andere Variable "verdeckt" (wenn die Variable im with-Block angesprochen wird).

Schön wäre es meiner Meinung nach, wenn irgendwann in der Sprache eine erweiterung installiert würde, die es ermöglichen würde, etwas auf die Art von
Code:
with Feld[i+7*j].x[k] NAME F do
   F.a:=F.b+F.c
zu schreiben. Damit wären dann auch alle potentiellen Probleme erledigt - und aus diesem Beispiel ist auch ersichtlich, dass es durchaus Situationen gibt, wo with ein sehr nützliches Konstrukt ist.

Geändert von idefix2 (16. Aug 2015 um 01:16 Uhr)
  Mit Zitat antworten Zitat