C# Language Explicit Casting


If you know that a value is of a specific type, you can explicitly cast it to that type in order to use it in a context where that type is needed.

object value = -1;
int number = (int) value;

If we tried passing value directly to Math.Abs(), we would get a compile-time exception because Math.Abs() doesn't have an overload that takes an object as a parameter.

If value could not be cast to an int, then the second line in this example would throw an InvalidCastException