flex3 type casting
-
05-07-2019 - |
Frage
Kennt jemand den Unterschied zwischen den beiden Arten von Typumwandlung in Flex 3?
var myObject1:MyObject = variable as MyObject;
var myObject2:MyObject = MyObject(variable);
Ich ziehe die zweite Methode zu verwenden, weil es einen Fehler aus, wenn Typumwandlung scheitert, während die erste Methode wird nur null zurück. Aber gibt es weitere Unterschiede? Vielleicht zu alle Vorteile der ersten Methode?
Lösung
Die zweite Art von Guss unterschiedliches Verhalten für Top-Level hat ( http: //livedocs.adobe .com / flex / 2 / langref / ) Typen, zB Array (obj) nicht in der einfachen Art und Weise werfen Sie beschreiben; es wird ein neues Array, wenn möglich, von obj, auch wenn obj ein Array ist.
Ich bin sicher, dass die Zeiten, würde dies zu unerwartetem Verhalten führen wären selten, aber ich „als“ aus diesem Grunde immer. Es bedeutet, wenn ich
int(str)
Ich weiß, es ist ein gegossenes im „Versuch zu konvertieren“ Sinn des Wortes nicht in dem „Ich verspreche es“ Sinn.
ref: bekam eine Bestätigung über den von http : //raghuonflex.wordpress.com/2007/07/27/casting-vs-the-as-operator/
Andere Tipps
- Die
as
Methode gibtnull
wenn Umwandlung fehlschlägt. - Die
()
Methode löst und Fehler, wenn die Umwandlung fehlschlägt.
Wenn der Wert von variable
nicht kompatibel mit MyObject
ist, wird myObject1
null
enthalten und Sie werden von einem null
Zeigerfehler ( 1009 überrascht sein. Kann nicht eine Eigenschaft oder Methode einer null-Objektreferenz zugreifen ) irgendwo später im Programm, wenn Sie versuchen, darauf zuzugreifen. Wo, wie, wenn Sie das Gießen der MyObject(variable)
Syntax verwenden, werden Sie eine Art Zwang Fehler angezeigt ( 1034: Typ Konvertierung fehlgeschlagen: Konvertierung _ bis _ ) auf der gleichen Linie selbst - die mehr hilfreich ist, als sich ein 1009 irgendwo später und fragen, was schief gelaufen ist.
Ich glaube, ich irgendwo auf dieser Seite gelesen, dass as
ist slighty schneller als ()
, aber ich kann die Frage nicht wieder finden.
, dass neben diese Frage oft gestellt wurde, erhalten Sie eine tiefe gehende Antwort hier .
ich das sehr nützlich []
Tag vor kurzem entdeckt, wenn sie auf der Suche Stackoverflow ermöglicht es, nur mit dem angegebenen Tag (e) markierten in Fragen zu suchen. So könnte man eine Suche wie [Actionscript-3] als vs Guss . Es gibt mehr Suchtipps hier:. https://stackoverflow.com/search
Und nein; die Ironie in die ich nicht die Frage über die Leistung finden und schreibe darüber, wie auf mich zu suchen, ist nicht verloren;)
Ich denke, als Rückkehr die Basisklasse und nicht null zurück, wenn das Gießen ausfällt und () wirft einen Fehler.