C# difference between casting and as?

Viewed 23813

Possible Duplicate:
What is the difference between the following casts in c#?

In C#, is a there difference between casting an object or using the as keyword? Hopefully this code will illustrate what I mean...

String text = "Hello hello";
Object obj = text; 

String originalCast = ((String)obj).ToUpper();
String originalAs = (obj as String).ToUpper();

Thanks

:)

4 Answers

Other than InvalidCastException that's already mentioned...

as will not work if the target type is a value type (unless it's nullable):

obj as int // compile time error.

As far as I know!

Using 'as' will return null if the 'cast' fails where casting will throw an exception if the cast fails.

Using 'as' will not throw an exception if the obj is not a String. Instead it'll return null. Which in your case will still throw an exception since you're immediately referencing this null value.

Related