Nein so ist das nicht.
Bei einem reinen HardCast wird keine
Exception geworfen, erst wenn ein Zugriff erfolgt.
Delphi-Quellcode:
var
LEdit : TEdit;
begin
Instance := TObject.Create;
...
LEdit := TEdit( Instance );
...
LEdit.Text := '
foo';
// hier Exception
...
end;
Bei einem SoftCast erfolgt die
Exception direkt beim Casten.
Delphi-Quellcode:
var
LEdit : TEdit;
begin
Instance := TObject.Create;
...
LEdit := Instance
as TEdit;
// hier Exception
...
LEdit.Text := '
foo';
...
end;
Will man eine
Exception vermeiden, dann muss immer vor dem Casten mit
is
geprüft werden.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)