What is the difference between "(type)object" and "object as type"?
object myObject = "Hello World.";
string myString = myObject as string;
object myObject = "Hello World.";
string myString = (string)myObject;
I constantly forget the difference between these two usages of type conversion so I decided to throw up a quick blog post about it. Hopefully writing an explanation will cement it in my brain.
Using the as
keyword will return the string value of the object if it is a string. If it is not a string it will simply return null. Explicit casting will throw an exception rather than return null.
object myObject = 123;
string myString = myObject as string;
// myString = null
object myObject = 123;
string myString = (string)myObject;
// throws an exception