本帖最后由 不经夸。 于 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:输入的字符串的格式不正确;
注意:
要运行起来需要注释一些代码 |
组图打开中,请稍候......
|