A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 不经夸。 于 2014-3-3 13:46 编辑

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace text
{
    class Program
    {
        //Convert.ToInt32与int.Parse,int.TryParse的区别
        static void Main(string[] args)
        {
            //表面上看,可见3个方法都实现了同样的效果!
            string str = "1234";
            int num = 0;

            

            num = int.Parse(str);
            Console.Write(num + "\r\n ");

            int.TryParse(str, out num);
            Console.Write(num + "\r\n");

            num = Convert.ToInt32(str);
            Console.Write(num + "\r\n ");

            Console.WriteLine("表面上看,可见3个方法都实现了同样的效果!");

            Console.WriteLine("华丽的分割线-------------------输入任意字符继续-------------------------------------------");//2
            Console.ReadLine();


            Console.WriteLine("我们把str1换成null会怎么样呢?");
            string str1 = null;
            int num1 = 0;

            //  图1   图3
            num1 = int.Parse(str1);
            Console.Write(num1 + "\r\n ");

            int.TryParse(str1, out num1);
            Console.Write(num1 + "\r\n");

            num1 = Convert.ToInt32(str1);
            Console.Write(num1 + "\r\n ");

            Console.WriteLine("int.Parse(str1)如果是null,则抛出异常System.ArgumentNullException:值不能为null");
            Console.WriteLine("int.TryParse(str1, out num1)如果是null,不抛异常,会返回true或false来说明解析是否成功,如果解析错误,调用方将会得到0值。");
            Console.WriteLine(" Convert.ToInt32(str1)如果是null时,不抛异常而是返回0;");

            Console.WriteLine("");
            Console.WriteLine("华丽的分割线-------------------输入任意字符继续-------------------------------------------");
            Console.ReadLine();


            Console.WriteLine("我们把str2换成字符串会怎么样呢?");
            string str2 = "fads";
            int num2 = 0;



            // 图4 图5
            num2 = int.Parse(str2);
            Console.Write(num2 + "\r\n ");

            
            int.TryParse(str2, out num2);
            Console.Write(num2 + "\r\n");

            // 图6
            num2 = Convert.ToInt32(str2);
            Console.Write(num2 + "\r\n ");

            Console.WriteLine("int.Parse(str1)如果不是数值类型,则抛出异常:System.FormarException:输入的字符串的格式不正确");
            Console.WriteLine("int.TryParse(str1, out num1)如果不是数值类型,不抛异常,会返回true或false来说明解析是否成功,如果解析错误,调用方将会得到0值。");
            Console.WriteLine(" Convert.ToInt32(str1)如果不是数值类型,则抛出异常:System.FormarException:输入的字符串的格式不正确");

            Console.ReadLine();
        }
    }
}

总结:
第一个:
   如果是数字的话,三个方法运行都一样

第二个:
   如果是null的话,
int.Parse(str1)如果是null,则抛出异常System.ArgumentNullException:值不能为null;
int.TryParse(str1, out num1)如果是null,不抛异常,会返回true或false来说明解析是否成功,如果解析错误,调用方将会得到0值。;
Convert.ToInt32(str1)如果是null时,不抛异常而是返回0;

第三个:
   如果是字符串的话,
int.Parse(str1)如果不是数值类型,则抛出异常:System.FormarException:输入的字符串的格式不正确;
int.TryParse(str1, out num1)如果不是数值类型,不抛异常,会返回true或false来说明解析是否成功,如果解析错误,调用方将会得到0值。;
Convert.ToInt32(str1)如果不是数值类型,则抛出异常:System.FormarException:输入的字符串的格式不正确;

注意:
要运行起来需要注释一些代码
更多图片 小图 大图
组图打开中,请稍候......

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

1 个回复

倒序浏览
  1. static void Main(string[] args)
  2.         {
  3.     string m_str = "heima";
  4.     string m_str1 = "";
  5.     string str = "123";
  6.     int number;

  7.     Convert.ToInt32
  8.     19个重载  参数什么类型都可以
  9.     number = Convert.ToInt32(m_str1 );
  10.     其内部也是调用int.Parse方法   只是加了一层判断 如果待转换字符串为空则抛出异常


  11.     int.Parse
  12.     4个重载   参数只能是字符串
  13.     number = int.Parse(m_str);


  14.     TryParse
  15.     2个重载   参数只能是字符串 并且返回值是bool类型
  16.     number = int.TryParse(m_str);error
  17.     bool b = int.TryParse(m_str, out number);


  18.     Console.ReadKey();
  19.         }
复制代码


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马