Prase()方法的一个问题在于,要知道转换能否成功,唯一的办法就是尝试执行类型转换,并在失败的时候引发并捕捉异常。而异常处理的代价往往相当的高,所以更好的办法,就是尝试执行转换的同时,不进行异常处理。
在CLI(Common Language Infrastructure,公共语言基础结构)2.0版本中,CLI为所有基础数据类型都实现了TryPrase()方法,这个方法要求使用out关键字,因为从TryPrase()返回的是一个bool值,而不是转换好的值。
下面来看一个例子:
1 using System; 2 3 namespace TryParese 4 { 5 class Program 6 { 7 static void Main(string[] args) 8 { 9 Console.WriteLine("Please input your age:"); 10 string ageText = Console.ReadLine(); 11 int age = 0; 12 if(int.TryParse(ageText,out age)) 13 { 14 Console.WriteLine("You are {0} old.",age); 15 } 16 } 17 } 18 }
如果输入正确的数字,运行结果如下图显示:
1 Please input your age: 2 12 3 You are 12 old. 4 请按任意键继续. . .
如果输入非数字,不能正确转型,运行结果如下图显示:
Please input your age:
ds
请按任意键继续. . .