Int.Parse()、Convert.toInt32()和(int)区别
通过网上的查询从而了解了Int.Parse()、Convert.toInt32()和(int)区别。
一、定义上的差别
int类型表示一种整型,.NET Framework 类型为 System.Int32。而是用(int)表示显式强制类型转换,当从 int 类型到 long、float、double 或decimal 类型,称为隐式转换;当从从double 或decimal、float、long、int类型逐级转换时,称为显式强制类型转换。(对long 类型或是浮点型到int 类型的显式强制转换中使用,但是如果被转换的数值大于 Int32.MaxValue 或小于 Int32.MinValue,那么则会得到一个错误的结果)
Int.Parse()表示将数字的字符串转换为32位有符号整数,属于内容转换。
Convert.toInt32()表示可以将多种类型(包括 object 引用类型)的值转换为 int 类型。
Int32.TryParse 与 int.Parse 又较为类似,但它不会产生异常,转换成功返回 true,转换失败返回 false。
二、Int.Parse()与Convert.toInt32()的差别
1、Int.Parse()当传入的是Null,将会抛出异常;Convert.toInt32()当传入的是Null,将返回0。
例如:Int.Parse(null)抛出异常,Convert.toInt32(null)==0,返回true。
2、Int.Parse()传入的是” ”,将会抛出异常;Convert.toInt32()传入的是” ”,也将抛出异常。
例如:Int.Parse(“”)与Convert.toInt32(“”)都将抛出异常。
3、性能差异:
Int32.TryParse()优于Int32.Parse()优于Convert.ToInt32()。
Convert.ToInt32会把最终的解析工作代理给Int32.Parse,而Int32.Parse和Int32.TryParse则分别把解析工作直接代理给Number.ParseInt32和Number.TryParseInt32,前者在出现解析,错误时会抛出异常,而后者则仅仅返回 false。
三、差别的常见例子:
1、long longtype=100;
Int inttype=longtype; //错误的写法,因为没有进行显式强制转换
Int inttype=(int)longtype; //正确的写法
2、string stringtype=”12345”;
Int inttype=(int)stringtype; //错误,string不能直接转换为int
Int inttype=Int.Parse(stringtype); //正确
3、long longType = 100;
string stringType = "12345";
object objectType = "54321";
int intType = Convert.ToInt32(longType); //正确
Int intType = Convert.ToInt32(stringType); //正确
int intType = Convert.ToInt32(objectType); //正确
4、double doubleType = Int32.MaxValue + 1.011;
int intType = (int)doubleType; //虽然运行正确,但是得出错误结果
int intType=Convert.ToInt32(doubleType) ; //抛OverflowException 异常
Int.Parse()、Convert.toInt32()和(int)区别的更多相关文章
- 字符串转换成整型,到底使用int.Parse,Convert.ToInt32还是int.TryParse?
当我们想把一个字符串转换成整型int的时候,我们可能会想到如下三种方式:int.Parse,Convert.ToInt32和int.TryParse.到底使用哪种方式呢? 先来考虑string的可能性 ...
- (int)、Convert.ToInt32()与int.Parse()的区别
1.(int)是类型转换,能够使用(int)进行强类型转换的只能是数值类型,如long.short.double等,这种转换时需要考虑精度问题. 如下的代码就行不通了: string text = & ...
- C# 中 int、Convert.ToInt32()、int.Parse()的区别
int适合简单数据类型之间的转换,C#的默认整型是int32(不支持bool型); int.Parse(string sParameter)是个构造函数,参数类型只支持string类型; Conver ...
- Convert.ToInt32()、int.Parse()和(int)三者的区别
Convert.ToInt32将object类类型转换成int类型,如Convert.ToInt32(session["shuzi"]); (int)适合简单数据类型之间的转换: ...
- [No000082]Convert和Parse的区别/Convert.ToInt32()与int.Parse()的区别
(1)这两个方法的最大不同是它们对null值的处理方法: Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常. 没搞清楚Convert. ...
- Convert.ToInt32()与int.Parse()的区别
Convert.ToInt32()与int.Parse()的区别 (1)这两个方法的最大不同是它们对null值的处理方法: Convert.ToInt32(null)会返回0而不会产生任何异常, ...
- Convert.ToInt32()与int.Parse()的区别 (转载)
Convert.ToInt32()与int.Parse()的区别(1)这两个方法的最大不同是它们对null值的处理:Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Pa ...
- Convert.ToInt32()和int.Parse()区别
Convert.ToInt32()和int.Parse()都可以数据转换个int类型,区别在于: 1. Convert.ToInt32()将object类类型转换成int类型,例如:Convert.T ...
- C#中Convert.ToInt32、int.TryParse、(int)和int.Parse四者的区别
Convert.ToInt32.(int)和int.Parse三者的区别: 首先:Convert.ToInt32 适合将object类类型转换成int类型,如Convert.ToInt32(sessi ...
- C#整数三种强制类型转换int、Convert.ToInt32()、int.Parse()、string到object 的区别
1.int适合简单数据类型之间的转换,C#的默认整型是int32(不支持bool型); 2.int.Parse(string sParameter)是个构造函数,参数类型只支持string类型; 3. ...
随机推荐
- IIS常见错误及解决
IIS常见错误 1.HTTP 错误 404.3 - Not Found由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. 解决办法: w ...
- [转]Java数组初始化详解
一维数组1) int[] a; //声明,没有初始化 2) int[] a=new int[5]; //初始化为默认值,int型为0 3) int[] a={1,2,3,4,5}; ...
- 李洪强iOS开发之OC[013] -类的创建的练习
// // main.m // 12 - 类的创建练习 // // Created by vic fan on 16/7/9. // Copyright © 2016年 李洪强. All ri ...
- *[codility]AscendingPaths
https://codility.com/programmers/challenges/magnesium2014 图形上的DP,先按照路径长度排序,然后依次遍历,状态是使用到当前路径为止的情况:每个 ...
- java retention注解
Retention注解 Retention(保留)注解说明,这种类型的注解会被保留到那个阶段. 有三个值:1.RetentionPolicy.SOURCE —— 这种类型的Annotations只在源 ...
- [iOS]如何给Label或者TextView赋HTML数据
// // ViewController.m // text // // Created by 李东旭 on 16/1/22. // Copyright © 2016年 李东旭. All rights ...
- 量化生产力Quantifying Productivity
I'm always on a lookout for interesting datasets to collect, analyze and interpret. And what better ...
- opencv 画延长线
hough变换可以让我们检测到直线,这在前面已有详解,对于车道检测,我们需要其到图像边界的延长线一遍之后数据帧分析. 以下代码帮助我们在opencv中画延长线,本来想用虚线表示延长线的,无奈参数调不好 ...
- GridView官方教程及示例
Grid View GridView is a ViewGroup that displays items in a two-dimensional, scrollable grid. The gri ...
- 使用hibernate annotation 为非空列加上默认值
在网上查了很多资料都没找到如何为非空列加上默认值 以前的做法是给字段一个初始值,加上dynamic-insert属性 换了annotation了以后没有找到如何设置dynamic-insert属性 但 ...