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)