黑马程序员技术交流社区
标题:
int.TryParse的实用性
[打印本页]
作者:
神马王刚
时间:
2012-10-7 00:03
标题:
int.TryParse的实用性
本帖最后由 神马王刚 于 2012-10-7 15:40 编辑
将字符串转换为整型,我们常用的有3个方法,分别是Convert.ToInt32();int.Parse()和int.TryParse();
Console.WriteLine("请输入一个数");
int num1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入一个数");
int num2 = int.Parse(Console.ReadLine());
Console.WriteLine("请输入一个数");
int num3 = 0;
bool result = int.TryParse(Console.ReadLine(), out num3);
Console.ReadKey();
复制代码
int.Parse()和convert.toint32就没区别,对等,喜欢那个用哪个,而用tryParse的话,代码不仅多一行,而且转换成功与否有提示,可是转化失败的话,也就提示不成功,也没有错误提示并要求重输.若输入的不能转换,我们需要的功能是提示错误并要求重输,那这是3个都在一个起跑线上了,除非一定非要得到true或false的话.按照我们的思维和习惯,能转换就给出转换后的结果,不能转换就提示错误要求重输,用户体验才会比较好.因此,我觉得int.TryParse的实用性实在不高,使用频率也低,只能说为我们思维的拓展提供了一种可能.不知道大家怎么看待int.TryParse的定位?这个转换你们用的多么?
作者:
管海鹏
时间:
2012-10-7 00:10
1、(int)是一种类型转换;当我们从int类型到long,float,double,decimal类型,可以使用隐式转换,但是当
我们从long类型到int类型就需要使用显式转换,否则会产生编译错误。
2、int.Parse()是一种类容转换;表示将数字内容的字符串转为int类型。
如果字符串为空,则抛出ArgumentNullException异常;
如果字符串内容不是数字,则抛出FormatException异常;
如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常;
3、int.TryParse 与 int.Parse 又较为类似,但它不会产生异常,转换成功返回 true,转换失败返回 false。最后一个参数为输出值,如果转换失败,输出值为 0
4、Convert.ToInt32()是一种类容转换;但它不限于将字符串转为int类型,还可以是其它类型的参数;
比较:
Convert.ToInt32 参数为 null 时,返回 0;
int.Parse 参数为 null 时,抛出异常。
Convert.ToInt32 参数为 "" 时,抛出异常;
int.Parse 参数为 "" 时,抛出异常。
Convert.ToInt32 可以转换的类型较多;
int.Parse 只能转换数字类型的字符串。
作者:
陈顺亮
时间:
2012-10-7 00:14
TryParse();还是有一定的好处的 ,很多时候咱们还是通过if语句进行判断的,这样的话TryParse();返回的bool值用处就体现出来了
作者:
秦敖
时间:
2012-10-7 00:37
int
Number;
while
(!
int
.
TryParse
(Console.
ReadLine
(),
out
Number)||Number<
1
||Number>
100
)
{
Console.
Write
(
"输入无效,重新输入(1-100):"
);
}
这样即实现了为数值有效性的控制,也实现了数据范围有效性的控制
作者:
李佳儒
时间:
2016-2-29 22:25
{:2_32:}{:2_31:}{:2_30:}{:2_34:}{:2_33:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2