黑马程序员技术交流社区
标题: Convert.ToInt32、int.Parse的疑问 [打印本页]
作者: 邢凯 时间: 2014-8-3 13:00
标题: Convert.ToInt32、int.Parse的疑问
本帖最后由 邢凯 于 2014-8-4 10:00 编辑
Convert.ToInt32、int.Parse 这两个是要在什么情况来分别使用呢?还设有int.TryParse 的是怎么使用的,我看百度上的看不明白,(如果有代码来解释这个int.TryParse 最好了) 谢谢
作者: 许庭洲 时间: 2014-8-3 13:23
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Test3
{
public partial calss Form1 : Form
{
public Form1()
{
InitialzeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//用户在文本框1,2中输入两个数,点击按钮,在文本框3中显示从文本框1中的数字到文本框2中的数字之间的累加和。如果1或者2为错误的数据格式,则弹出对话框提示错
string s1= textBox1.Text;
string s2= textBox1.Text;
if(int.TryParse(s1,out i1) == false)
{
MessageBox.Show("数字1格式错误!");
return;
}
if(int.TyrParse(s2,out i2) == false)
{
MessageBox.Show("数字2格式错误!");
return;
}
if( i1>= i2)
{
MessageBox.Show("第二个数要大于第一个数");//排错技巧,在出错的地方设置断点,看相关变量
return;
}
}
}
}
作者: qsq0000hm 时间: 2014-8-3 14:14
int i;
bool b=int.TryParse("123",out i)
if(b)
{
Console.WriteLine(i);
}
tryparse就是试着转换,如果转换成功,则整个表达式返回true,转换后的值通过out返回。
上面的代码的意思就是,试着转换字符串“123”,转换成功,返回true,所以执行了if语句中的代码,输出转换后的值。
和convert和parse的区别就在于,它不会抛异常。前两个转换失败报错。
作者: 邢凯 时间: 2014-8-3 17:11
你这个我在百度上就看到这样的回复,但是这个返回值是指的是你里面的I吗? 那输出的时候就是直接输出BOOL 类型的吗
作者: 邢凯 时间: 2014-8-3 17:12
许庭洲 发表于 2014-8-3 13:23
using System.Collections.Generic;using System.ComponentModel;
using System.Data;
using System.Drawin ...
这个大哥你这个 貌似有点深奥,我没咋看明白{:3_59:}
作者: 深夜的空气 时间: 2014-8-3 18:52
这个大哥回答的问题可有含金量了,好好看,能学到很多
作者: qsq0000hm 时间: 2014-8-3 19:14
int.tryparse("",out i)整个表达式的返回值是BOOL类型的。
bool b=int.TryParse("123",out i)。b来接收bool类型的返回值,如果返回值是true,那么表示转换成功了
,那么字符串“123 ”转换后的值通过参数i传出,就是整数123。
作者: 蜗牛阿布 时间: 2014-8-3 21:50
你按F11逐句调试一下看看
作者: 邢凯 时间: 2014-8-3 22:53
哦哦 这样说我就懂了, 谢谢
作者: 小笨 时间: 2014-8-4 09:01
bool b=int.TryParse("321",out i)。b用来接收bool类型的返回值,如果返回值是true,那么表示字符串转换成功,那么字符串“321 ”转换后的值通过参数i传出,就是整数321。
作者: 邢凯 时间: 2014-8-4 09:59
这样说我的脑子就明白了, 谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |