如果不确定某个值是否属于您认为的类型,则可以使用as运算符安全地对其进行强制转换。如果该值不是该类型,则结果值为null。
object value = "-1"; int? number = value as int?; if(number != null) { Console.WriteLine(Math.Abs(number.Value)); }
请注意,null值没有类型,因此as关键字null在转换任何null值时都会安全地产生。