Einzelnen Beitrag anzeigen

Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.130 Beiträge
 
Delphi 10.3 Rio
 
#1

VAR oder nicht VAR Überlegungen

  Alt 26. Dez 2014, 13:50
Hallo Zusammen.

Unit A definiert:

Delphi-Quellcode:
type
   TFoo = Record
            MeinFeld : String;
          end;
Unit B definiert:

Delphi-Quellcode:
type
   TFoo = Class
    Public
      MeinFeld : String
   end;
Dann gibt es noch Unit C mit

Delphi-Quellcode:
Procedure A(AFoo : TFoo);
begin
  AFoo.MeinFeld := 'Warum kommt das hier nicht zurück';
end;
oder besser?
Delphi-Quellcode:
Procedure A(Var AFoo : TFoo);
begin
  AFoo.MeinFeld := 'Das kommt auf jeden Fall zurück';
end;
OK, Worum geht es mir?

Bei Records macht der Var Parameter einen Unterschied.
- Call bei Referenz
- Call bei Value

Theoretisch bei Classen auch, aber nur für den Objectzeiger.

Wenn ich also nach 5 Jahren mir eine Procedure anschaue kann ich mich ggf. nicht mehr daran erinnern, ob TFoo ein Object oder ein Record ist.

Daher meine These oder nennt es mein DesignPattern.

Wenn an Procedure ein Objekt übergeben wird, schreibe ich immer VAR. So kann ich an der Definition der Procedure sehen, dass wenn ich innerhalb der Procedure etwas mit AFoo mache, es Auswirkungen nach draußen hat.

Bin gespannt auf Eure Kommentare. Besonders ob wenigsten einer Dabei ist mit "Gute Idee"...

Mavarik
  Mit Zitat antworten Zitat