AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Warnung bei nicht initialisieren String-Result

Ein Thema von Ralle1 · begonnen am 20. Okt 2014 · letzter Beitrag vom 22. Okt 2014
 
Ralle1

Registriert seit: 2. Nov 2011
49 Beiträge
 
Delphi XE3 Professional
 
#1

Warnung bei nicht initialisieren String-Result

  Alt 20. Okt 2014, 17:53
Hallo zusammen!

Die folgende function erzeugt erwartungsgemäß eine Warnung:

Delphi-Quellcode:
function GetInteger(Value: boolean): integer;
begin
  if Value then
    Result := 1;
end;
W1035 Rückgabewert der Funktion 'GetInteger' könnte undefiniert sein

Mache ich das gleiche mit einem String als Result, wird keine Warnung generiert:

Delphi-Quellcode:
function GetString(Value: boolean): string;
begin
  if Value then
    Result := 'Value';
end;
Kann man es irgendwie konfigurieren so dass diese Warnung ausgelöst werden kann??

Man könnte nun argumentieren, dass ein String im Gegensatz zum Integer immer vorinitialisiert wird und die Warnung daher nicht nötig ist. Aber da Delphi intern scheinbar mit var-Parametern statt Result-Werten arbeitet, kann dies zu unerwartetem Verhalten führen, wenn man der Funktion eine Variable zuweist. Beispiel:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Test : string;
begin
  Memo1.Lines.Clear;

  Test := GetString(true);
  Memo1.Lines.Add(Test);

  Test := GetString(false);
  Memo1.Lines.Add(Test);
end;
Das Memo enthält nach dieser Funktion tatsächlich 2 Zeilen „Value“ da die Funktion die Variable Test
als Var-Parameter nutzt, also etwa als wenn man es so schreiben würde:

procedure GetString(Value: boolean; var Result: string);

Daher würde ich gerne davor gewarnt werden, wenn ein Result String undefiniert sein könnte ?!
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:37 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 by Thomas Breitkreuz