as, typeof, is

Der übliche Weg, einen Wert in einen anderen Typen umzuwandeln, besteht darin, ihm den Zieltyp in runden Klammern voranzustellen :

long intValue = 42;
int longValue = (int) longValue;

Löst die Konvertierung dabei jedoch einen Fehler aus, wird lediglich eine Invalid- CastException ausgelöst. Manchmal ist dies gewünscht, manchmal jedoch auch nicht. Abhilfe schaffen die Schlüsselwörter is, as und typeof:

  • is prüft, ob ein Wert in einen bestimmten Typen konvertierbar ist und gibt entsprechend true oder false zurück.
  • as konvertiert einen Wert in einen bestimmten Typ. Schlägt die Konvertierung fehl, löst dies jedoch keine Ausnahme aus und die Konvertierung wird dennoch ausgeführt. Der Zieltyp hat danach jedoch den Wert null. as funktioniert also nur in Verbindung mit Referenztypen oder nullbaren Wertetypen.
  • typeof ermittelt ein Typobjekt zu einem gegebenen Typen; auf einer Instanz eines Typen muss stattdessen die GetType() - Methode aufgerufen werden. In beiden Fällen ist es jedoch möglich, mit dem erhaltenen Objekt auf bestimmte Fähigkeiten oder Eigenschaften zu prüfen.

MSDN: typeof