checked验证溢出
static void Main(string[] args) { long val = 30000000000; try { checked { int i = (int)val; } } catch(Exception ex) { Console.WriteLine(ex.ToString()); } Console.Read(); }
数据类型从范围小的转换到范围大的可以隐式转换,反之则会便以失败。如果强制类型转换的话,可能会出现溢出。如果要查看是否溢出,可以用check关键字。
代码默认是unchecked的。