Thomas Woelfers Baustatik Blog

Baustatik-Software und was sonst des Weges kommt

Unterschiede beim cast: 'as' oder cast-operator ?

Es gibt in C# zwei Arten einen Typecast durchzuführen: Zum einen mit dem cast-Operator, zum anderen mit 'as'.

TargetObjectType xx = (TargetObjectType)yy;

bzw.

TargetObjectType xx = yy as TargetObjectType;

Abgesehen davon das 'as' bei Value-Types nicht geht gibt es einen wirklich wesentlichen Unterschied: Der cast mit 'as' liefert null wenn die Umwandlung nicht möglich ist, während die andere Variante in diesem Fall eine Exception wirft.

Flexibler ist also 'as', 'Typensicherer' ist die andere Variante. Arbeitet man beispielsweise mit einer Collection bei der man (eigentlich) lieber Generics verwenden würde (was nicht geht, weil es die erst im nächsten Jahr gibt), dann ist wohl eher die Version ohne 'as' die richtige.

Comments are closed