int.Trypasre() 、int.pasre()、Convert.To32() 的区别

int.Trypasre() 

Int32.TryParse(source, result)则无论如何都不抛出异常,只会返回true或false来说明解析是否成功,如果解析失败,调用方将会得到0值。

int.pasre()

如果解析失败,Int32.Parse(source)总会抛出异常。

Convert.To32()

Convert.ToInt32(source)在source为null的情况下不会抛出异常而是简单的返回0给调用方。

Pasre 与 Convert 的本质区别

Convert 用来转换继承自object类型的类型(当然所有的类型都是继承自object的),但是一般Convert用来转化直接就是obejct的类型

Parse只用来转换String类型的数据。

性能上:

无论是Pasre,还是会Convert 底层都是调用Int类的 Pasre()回调只读类Number身上去进行类型转换。所以Pasre会比Convert快。

PS:我这里是对parse与 Convert的一些总结,

大部分来自 http://bbs.csdn.net/topics/280063811。

时间: 2024-10-19 14:58:37

int.Trypasre() 、int.pasre()、Convert.To32() 的区别的相关文章

Convert.ToInt32、(int)和int.Parse三者的区别

前者适合将object类类型转换成int类型,如Convert.ToInt32(session["shuzi"]); (int)适合简单数据类型之间的转换: int.Parse适合将string类类型转换成int类型,如int.Parse(session["shuzi"].ToString()). (1)这两个方法的最大不同是它们对null值的处理方法:    Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会

C#中(int)、int.Parse()、int.TryParse()和Convert.ToInt32()的区别

在编程过程中,数据转换是经常要用到的,C#中数据转换的方法很多,拿将目标对象转换为整型(int)来讲,有四种方法:分别为(int).int.Parse().int.TryParse()和Convert.ToInt32(),那么这四种方法对被转换对象有什么限制,以及各自之间有什么区别呢?相信很多童鞋也不能完全说清楚. 下面从被转换对象说起,在我们实际开发项目的过程中,我们碰到需要被转换的类型大概有3大类,分别是空值(NULL).数字类型(包含float,double,int,long等)和字符串(

C# 使用int.TryParse,Convert.ToInt32,(int)将浮点类型转换整数时的区别

int.TryParse,Convert.ToInt32,(int) 这几种类型在将浮点类型转换整数时是有差别 Convert.ToInt32则会进行四舍五入 int.TryParse只能转换整数,即浮点类型全部会返回0 (int)不会进行四舍五入,只取整数部分,小数点部分完全舍弃 using  System;public   class  DoubleToInt{     public   static   void  Main()    {        Test_DoubleToInt(

C#中(int)、int.Parse()、int.TryParse()和Convert.ToInt32()的区别 <转>

作者:Statmoon 出处:http://leolis.cnblogs.com/ 在编程过程中,数据转换是经常要用到的,C#中数据转换的方法很多,拿将目标对象转换为整型(int)来讲,有四种方法:分别为(int).int.Parse().int.TryParse()和Convert.ToInt32(),那么这四种方法对被转换对象有什么限制,以及各自之间有什么区别呢?相信很多童鞋也不能完全说清楚. 下面从被转换对象说起,在我们实际开发项目的过程中,我们碰到需要被转换的类型大概有3大类,分别是空值

C#中(int)、int.Parse()、int.TryParse()和Convert.ToInt32()的区别以及ToString()和Convert.ToString()的区别

在计算关于“钱”的各种占比时,我遇到了各种问题. 例如: double a=1.4035; Console.WriteLine($"0.##输出:{a.ToString("0.##")}");   ①Console.WriteLine($"F2输出:{a.ToString("F2")}"); ②Console.WriteLine($"0.00输出:{a.ToString("0.00")}"

int.Parse()、int.TryParse()和Convert.ToInt32()的区别

1:int.Parse(一个参数)        此参数必须满足: 1 只能是字符串: 2 只能是 “整型” 字符串,即各种整型ToString()之后的形式,也不能为浮点型. 2:int.TryParse(参数a,参数b); 此方法可以看做是int.Parse()方法的升级,即做了一个异常处理,如果出现异常则返回false,并且将输出参数返回0: 注意,参数a, 也必须是字符串或null即可 例如: int b; int.TryParse("54.1",out b); Respons

C# (int)、Parse() 和 Convert

(int)和Int32.Parse(),Convert.ToInt32()三者的应用举几个例子: 例子一: long longType = 100; int intType  = longType;       // 错误,需要使用显式强制转换 int intType = (int)longType; //正确,使用了显式强制转换 例子二: string stringType = "12345"; int intType = (int)stringType;              

read(char[] b,int off,int len) 和read(char[] b)的区别

今天在读取文件里的十六进制数据的时候,采用java的read(char[] b)方法进行读取,结果发现打印的数据和文件里的数据结尾不一致.后来一看还有一个read(char[] b,int off,int len) 方法.就去查了一个它们的区别,正好read(char[] b,int off,int len) 可以解决我的问题.下面是网上参考的资料,很容易懂. 这是read(char cbuf[])方法的源码,可以看出,read方法其实是调用了read(char[] b,int off,int

python 提示 :OverflowError: Python int too large to convert to C long

一次在使用orm进行联表查询的时候,出现   Python int too large to convert to C long 的问题: 在分析错误之后,在错误最后面提示中有: File "F:\python\python3.6\lib\sqlite3\dbapi2.py", line 64, in convert_date return datetime.date(*map(int, val.split(b"-"))) 在查看我的model.py文件的时候我的模