Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#24

AW: records oder klassen?

  Alt 9. Jun 2016, 11:46
Ob bei der Parameterübergabe eine Kopie oder nur eine Referenz (praktisch ein Zeiger auf den übergebenen Record, aber vor dem Entwickler verborgen) übergeben wird, kann man aber mit den Schlüsselworten const, var oder out steuern.
Delphi-Quellcode:
procedure TuWasMitPointer(P: PMyRecord);
begin
  P^.ID := 1;
  P^.Name := 'Test';
end;

procedure TuWasMitReferenz(var R: TMyRecord);
begin
  R.ID := 1;
  R.Name := 'Test';
end;

procedure TuWasMitReferenz(out R: TMyRecord);
begin
  R.ID := 1;
  R.Name := 'Test';
end;
Die Prozeduren erzeugen genau den selben Code. Der Compiler führt beim Compilieren aber unterschiedliche Prüfungen aus und kann den Entwickler so bei falscher Benutzung warnen.
  Mit Zitat antworten Zitat