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

19. Juli 2004 16:08

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.

Kommentare sind geschlossen

Kalender

<<  Mai 2012  >>
MoDiMiDoFrSaSo
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

View posts in large calendar