Laden...

Unterschied zwischen...

Erstellt von ayrtonsenna vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.192 Views
ayrtonsenna Themenstarter:in
27 Beiträge seit 2006
vor 17 Jahren
Unterschied zwischen...

Hallo,
hab mal wieder eine Anfängerfrage, weil ich es noch nicht ganz verstanden hab.
Kann mir bitte jemand den Unterschied zwischen

Irgendwas i=(Irgendwas) irgendwasähnliches;

und

Irgendwas i=irgendwasähnliches as Irgendwas;

Habe zwar schon Doku gelesen, aber der Unterschied ist mir nicht ganz klar. 🤔
Danke

F
722 Beiträge seit 2005
vor 17 Jahren

Hallo,

"as" funktioniert im gegensatz zum Cast nur mit reference-types und nicht mit value types (also z.b. "int").

Wenn in deinem Beispiel


Irgendwas i=irgendwasähnliches as Irgendwas;
Irgendwas i=(Irgendwas) irgendwasähnliches;

"irgendwasähnliches" nicht in den Typ "Irgendwas" umgewandelt werden kann passiert folgendes:

"as" gibt für i einfach null zurück. (null == reference type)
der cast feuert jedoch eine InvalidCast Exception.

S
8.746 Beiträge seit 2005
vor 17 Jahren
  1. as liefert bei nicht möglicher Konvertierung null, während ein cast eine Exception wirft
  2. cast führt ein implizite bzw. explizite Konvteriung durch, as nicht
  3. as geht nur auf Referenztypen