Possible Duplicate:
Casting: (NewType) vs. Object as NewType
Say for example I have a class called MyObjectType and I want to convert the sender parameter of an event to this type. I would usually go about it by simply doing this:
MyObjectType senderAsMyType = (MyObjectType) sender;
I’ve recently realised that it can also be done like this:
MyObjectType senderAsMyType = sender as MyObjectType;
Which way is most efficient? So that I can make my code consistent and use one of the ways throughout. Or do they both have pro’s and cons? If so please could someone inform me of them.
Thanks again,
If you wish to avoid any
InvalidCastExceptionsuseotherwise use
if an
InvalidCastExceptionrepresents a true exceptional situation in your application.As for performance, I would contend that you would find no discernible difference between the two different kinds of casting. I was interested though so I used Jon Skeet’s BenchmarkHelper and achieved results that confirmed my suspicions:
Test:
Output: