Zitat von
Codewalker:
Wo ist denn da der Unterschied. Einmal mit "is" prüfen und dann casten. Ist es denn ein Unterschied ob ich mit TButton(Sender).Name caste oder mit "as" (Sender as TButton).Name ? Ist ja keine doppelte Überprüfung
Und ob.
s := (Sender as TButton).Name;
entspricht etwa
Delphi-Quellcode:
if Sender is TButton then
s := TButton(Sender).Name
else
raise EInvalidCast.Create;
- siehe _AsClass in
Unit System. D.h. für "as" muss tatsächlich zur Laufzeit Code ausgeführt werden, während der "harte" Cast nur zur Beruhigung des Compilers dient, aber zur Laufzeit keine Auswirkungen mehr hat.