Every Developer has his/her own standards. Some developers like to
, some developers like to cast using (type)object;
, and s
as
operator would return null
if parsing fails. Since int
is a non nullable value type, you get the error, whereas int?
or Nullable<int>
can hold null
value, that is why your second code snippet works.
See: as (C# Reference)
You can use the as operator to perform certain types of conversions between compatible reference types or nullable types
also from the same doc link
The as operator is like a cast operation. However, if the conversion isn't possible, as returns null instead of raising an exception.