AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

STRING könnte undefiniert sein.

Ein Thema von stahli · begonnen am 23. Nov 2016 · letzter Beitrag vom 24. Nov 2016
Antwort Antwort
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
3.725 Beiträge
 
Delphi XE3 Ultimate
 
#1

STRING könnte undefiniert sein.

  Alt 23. Nov 2016, 21:36
Delphi-Quellcode:
function TMyObject.MyInteger: Integer;
begin

end;

function TMyObject.MyString: string;
begin

end;

Mein Compiler warnt für die Integer-Funktion, dass der Resultwert undefiniert sein könnte, aber nicht für die String-Funktion.

Ist das ein Bug?
Bei Euch reproduzierbar?
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
4.961 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: STRING könnte undefiniert sein.

  Alt 23. Nov 2016, 21:51
Interfaces z.B. auch. Ist nun mal so. Liest doch eh keiner die Compiler-Warnungen

http://www.delphipraxis.net/175233-w...ml#post1217791
  Mit Zitat antworten Zitat
Benutzerbild von bytecook
bytecook

Registriert seit: 6. Aug 2010
Ort: Dornbirn
136 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: STRING könnte undefiniert sein.

  Alt 23. Nov 2016, 21:53
Interfaces z.B. auch. Ist nun mal so. Liest doch eh keiner die Compiler-Warnungen

http://www.delphipraxis.net/175233-w...ml#post1217791
Hehe. Manchereiner macht auf lernfähig und verwendet jetzt zudem Fixinsight...
Peter
Was mache ich, wenn ein Bär meine Frau angreift?
Nichts. Er hat sie angegriffen, soll er doch selber sehen, wie er sich verteidigt.
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.421 Beiträge
 
Delphi 10.1 Berlin Starter
 
#4

AW: STRING könnte undefiniert sein.

  Alt 23. Nov 2016, 23:10
Ist das ein Bug?
Zumindest wirkt es inkonsistent, bei strenger Auslegung demnach ja.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#5

AW: STRING könnte undefiniert sein.

  Alt 24. Nov 2016, 00:19
Meine bisherige praktische Erfahrung:

Ein String, dem man nix zuweist ist ein Leerstring, hat also einen definierten Inhalt.

Bei 'ner Zahl kann es irgendeine Zahl sein, die in den entsprechenden Typ reinpasst (meistens 0, aber nicht immer).

Und die Compilerwarnungen zu den nicht sinnvoll belegten Variabeln ... lese ich und behebe diese Fehler, sofern sie aus meinen eigenen Routinen kommen.

Bei fremden Source lasse ich die Finger davon, es sei denn, es ist mit einer Fehlfunktion zu rechnen.

Und Delphi 7 meckert auch nur bei der Integerfunktion, die Stringfunktion ist wohl "egal".
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
34.931 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: STRING könnte undefiniert sein.

  Alt 24. Nov 2016, 01:47
Alle gemanageten Typen sind immer initialisiert, da die automatische Speicherverwaltung sonst nicht funktionieren kann.

ABER, hier ist es nicht so initialisiert, wie es dir gefallen würde.

Delphi implementiert dein function TMyObject.MyString: string; intern so procedure TMyObject.MyString(var Result: string); // als letztes Parameter
und das eribt was Schönes, wenn diese Variable schon vorher durch was Anderes gefüllt/wiederverwendet wurde.

Zitat:
Ein String, dem man nix zuweist ist ein Leerstring, hat also einen definierten Inhalt.
Definiert ja, aber nicht immer ein Leerstring. (lokale Variablen ja, aber nicht "zwangsweise" immer beim Result)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (24. Nov 2016 um 01:49 Uhr)
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#7

AW: STRING könnte undefiniert sein.

  Alt 24. Nov 2016, 09:30
Zitat:
Ein String, dem man nix zuweist ist ein Leerstring, hat also einen definierten Inhalt.
Definiert ja, aber nicht immer ein Leerstring. (lokale Variablen ja, aber nicht "zwangsweise" immer beim Result)
Deshalb schrieb ich ja auch:
Zitat:
Meine bisherige praktische Erfahrung.
Will heißen, mir ist bewusst nix anderes untergekommen, das heißt aber nicht, dass es beim nächsten Mal nicht doch anders sein könnte.

Meine Regel ist: Wenn der Compiler meckert, dass was undefiniert sein könnte, dann hat er recht und ich habe das zu korrigieren. Ohne Wenn und Aber.

Und wenn er nicht meckert, habe ich gefälligst selbst aufzupassen

Geändert von nahpets (24. Nov 2016 um 09:42 Uhr) Grund: Schon wieder Schreibfehler in sonem bisserl Täckscht :-(
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
34.931 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: STRING könnte undefiniert sein.

  Alt 24. Nov 2016, 09:34
Jupp, das was angemeckert wird, ist meistens falsch.
Zusätzlich wird "Vieles" nicht angemeckert, obwohl es potentiell falsch sein kann/ist.
Und selten wird was angemeckert, obwohl es richtig ist.

Lokale Variablen sind nicht initialisiert, abgesehn gemanagte Typen.
Globales und Klassenfelder sind immer initialisiert.
Thread-Lokales ist initialisiert, wird aber nicht finalisiert.
Und was in Pointern liegt, da ist der Entwickler dran Schuld.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (24. Nov 2016 um 09:37 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf