黑马程序员技术交流社区

标题: Convert.ToInt32、int.Parse的疑问 [打印本页]

作者: 邢凯    时间: 2014-8-3 13:00
标题: Convert.ToInt32、int.Parse的疑问
本帖最后由 邢凯 于 2014-8-4 10:00 编辑

Convert.ToInt32、int.Parse  这两个是要在什么情况来分别使用呢?还设有i​n​t​.​T​r​y​P​a​r​s​e  的是怎么使用的,我看百度上的看不明白,(如果有代码来解释这个​i​n​t​.​T​r​y​P​a​r​s​e 最好了)   谢谢
作者: 许庭洲    时间: 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
qsq0000hm 发表于 2014-8-3 14:14
int i;
bool b=int.TryParse("123",out i)
if(b)

你这个我在百度上就看到这样的回复,但是这个返回值是指的是你里面的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
邢凯 发表于 2014-8-3 17:12
这个大哥你这个 貌似有点深奥,我没咋看明白

这个大哥回答的问题可有含金量了,好好看,能学到很多
作者: qsq0000hm    时间: 2014-8-3 19:14
邢凯 发表于 2014-8-3 17:11
你这个我在百度上就看到这样的回复,但是这个返回值是指的是你里面的I吗? 那输出的时候就是直接输出BOOL ...

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
qsq0000hm 发表于 2014-8-3 19:14
int.tryparse("",out i)整个表达式的返回值是BOOL类型的。
bool b=int.TryParse("123",out i)。b来接收bo ...

哦哦 这样说我就懂了,  谢谢
作者: 小笨    时间: 2014-8-4 09:01
bool b=int.TryParse("321",out i)。b用来接收bool类型的返回值,如果返回值是true,那么表示字符串转换成功,那么字符串“321 ”转换后的值通过参数i传出,就是整数321。
作者: 邢凯    时间: 2014-8-4 09:59
qsq0000hm 发表于 2014-8-3 19:14
int.tryparse("",out i)整个表达式的返回值是BOOL类型的。
bool b=int.TryParse("123",out i)。b来接收bo ...

这样说我的脑子就明白了, 谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2