![]() |
Re: Funktion mit 2 Zahlen
Zitat:
Wenn nichts angegeben wird:
Delphi-Quellcode:
Ist es Call by Value, sprich beim aufruf der Funktion wird für a und b neuer Speicher angelegt und die übergebenen Werte werden dahin kopiert...
procedure Machwas( a, b: Integer )
{...} Inerhalb der Methode kann man sogar a und b verändern, ohne das dies außerhalb Auswirkungen hat... Sprich es wär in der Methode z.B. möglich: a := 56;... Wenn man z.b. nun einen String übergibt, wird der String auch komplett nochmal erstellt und kopiert! Wenn nun aber Const angegeben wird:
Delphi-Quellcode:
Ist es Call by Referenz, sprich es wird nur die Stelle im Speicher übergeben, man greift in der Methode also direkt auf den übergebenen Wert zu, welchen man übergeben hat! Aber! das Schlüsselwort Const verbietet eine Veränderung, sprich a := 56; ist nicht möglich...
procedure Machwas( Const a, b: Integer )
{...} Vorteil hat das aber wenn man mit z.B. mit Strings arbeitet! Da werden z.B. die Strings nicht neu angelegt! Was an vielen Stellen viel Performance ausmachen kann... Wenn nun dagegen Var angegeben wird:
Delphi-Quellcode:
Ist es auch Call by Referenz, sprich es wird nur die Stelle im Speicher übergeben, man greift in der Methode also direkt auf den übergebenen Wert zu, welchen man übergeben hat! Aber, wenn man nun den Wert in der Methode verändert: a := 56; ist der Wert nach der Methode außerhalb auch verändert!
procedure Machwas( Var a, b: Integer )
{...} Als letztes bleibt noch Out...
Delphi-Quellcode:
Hier trifft eigendlich das selbe zu wie beim Schlüsselwort Var, aber man kann auf a und b nicht in der Methode lesend zugreifen, also sowas wie a * b wäre nicht möglich....
procedure Machwas( Out a, b: Integer )
{...} So ich hoffe ich hab das alles richtig erklärt =) Bye Christian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:42 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