If you aren’t sure whether a value is of the type you think it is, you can safely cast it using the as operator. If the value is not of that type, the resulting value will be null.

object value = "-1";
int? number = value as int?;
if (number != null)
{
    Console.WriteLine(Math.Abs(number.Value));
}

Note that null values have no type, so the as keyword will safely yield null when casting any null value.