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

今天去面试,碰到这样一道题目,回来查了下答案~!

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)则会产生异常。

没搞清楚Convert.ToInt32和int.Parse()的细细微区别时千万别乱用,否则可能会产生无法预料的结果,举例来说:假如从url中取一个参数page的值,我们知道这个值是一个int,所以即可以用Convert.ToInt32(Request.QueryString["page"]),也可以用,int.Parse(Request.QueryString["page"]),但是如果page这个参数在url中不存在,那么前者将返回0,0可能是一个有效的值,所以你不知道url中原来根本就没有这个参数而继续进行下一下的处理,这就可能产生意想不到的效果,而用后一种办法的话没有page这个参数会抛出异常,我们可以捕获异常然后再做相应的处理,比如提示用户缺少参数,而不是把参数值当做0来处理。

(2)还有一点区别就是
  a. Convert.ToInt32(double value)
如果 value 为两个整数中间的数字,则返回二者中的偶数;即 3.5转换为4,4.5 转换为 4,而 5.5 转换为 6。  不过4.6可以转换为5,4.4转换为4

  b. int.Parse("4.5")
直接报错:"输入字符串的格式不正确".

  c. int(4.6) = 4
Int转化其他数值类型为Int时没有四舍五入,强制转换

int.Parse是转换String为int
Convert.ToInt32是转换继承自Object的对象为int的.
你得到一个object对象,你想把它转换为int,用int.Parse就不可以,要用Convert.ToInt32.

个人总结:
(1)Convert.ToInt32的参数比较多,Int.Parse只能转换string类型的.

(2)Parse就是把String转换成int,char,double....等,也就是*.Parse(string) 括号中的一定要是string.
(3)Convert可以提供多种类型的转换,也就是Convert.*()括号中可以为很多种类型(包括string).
(4)至于效率上的区别可以看看这遍文章:《细说Convert和Parse到底那个效率高》 

转载:http://www.cnblogs.com/flyker/archive/2009/03/04/1402673.html?login=1#commentform

转载于:https://www.cnblogs.com/beauty/archive/2010/03/16/1687571.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435613.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Wince6.0 cleartype

WinCE6.0下显示宋体毛刺很严重,影响显示效果,打开cleartype以后字体显示平滑,但是不知道为什么wince桌面上的中文字体显示乱码,而且自己的引用程序也变的很卡。 开始以为是字库的原因,后来添加了系统的组件以后一切正常…

【转】ubuntu16.04安装配置tftp服务

转自:ubuntu16.04安装配置tftp服务_carspiriter的博客-CSDN博客_ubuntu安装tftp 首先声明:tftp是client客户端,tftpd是server服务器端,d应该指的是daemon。如果你要从别人的tftp服务器端上传/下载东西,就要用到tftp&a…

如何编程得到数据库信息

获取数据库信息&#xff1a;public List<string> GetDatabase(string connectionString) {using (SqlDataAdapter sqlDataAdapter new SqlDataAdapter("SELECT Name FROM Master.sys.SysDatabases WHERE dbid > 4 ORDER BY Name ", connectionStrin…

【转】Dicom中的Image Orientation/Position的理解

转自&#xff1a;Dicom中的Image Orientation/Position的理解 - 知乎 在DICOM中&#xff0c;是通过Image Position和Image Orientation来描述当前的图像和人体坐标系的相对位置的。 打开DCM文件时&#xff0c;会发现下边的两个tag (0020,0032) DS ImagePosition(Patient) &q…

搭建TFS2008的过程及其注意事项

TFS服务端的安装 1、安装windows Server 2003 操作系统 2、打windows Server 2003 sp2 补丁 3、安装iis, 记得选上asp.net &#xff0c;不能选extend homepage 4、访问 Microsoft 网站上的 Windows Update&#xff0c;并安装“高优先级更新程序”组中的所有项 5、装上ms sql2…

【转】矩阵变换坐标系 深入理解

转自&#xff1a;矩阵变换坐标系 深入理解 - 知乎 网址链接&#xff1a;从坐标系图中理解“空间变换” 小谈矩阵和坐标变换 矩阵坐标系变化理解 让我们从一个实际的例子入手&#xff1a;下图是一个用两维的笛卡尔坐标系表示的二维空间。 其中&#xff0c;黑色坐标系 x-y代表…

【转】坐标系变换矩阵推导

转自&#xff1a; 坐标系的变换矩阵推导 1.平移变换 假设存在点(x,y,z)&#xff0c;将x移动a&#xff0c;y移动b&#xff0c;z移动c&#xff0c;到新的点(x′,y′,z′)&#xff0c;则&#xff1a; 中间4x4的矩阵叫变换矩阵。可见&#xff0c;如果要平移坐标&#xff0c;要将坐…

Crystal Report 2008

郁闷的Crystal Report 2008&#xff0c;下午逛了一圈sap网站&#xff0c;Crystal给Sap收购后就没怎么上过他们的网站&#xff0c;像迷宫一下逛了半天才找到下载升级包的地址&#xff0c;备用&#xff0c;也许你看到的时候已经失效了 http://www.sdn.sap.com/irj/boc/crystalrep…

【转】图形流水线中坐标变换详解:模型矩阵、视角矩阵、投影矩阵

转自&#xff1a;图形流水线中坐标变换详解&#xff1a;模型矩阵、视角矩阵、投影矩阵_sherlockreal的博客-CSDN博客_视角矩阵 图形流水线中坐标变换详解&#xff1a;模型矩阵、视角矩阵、投影矩阵 图形流水线中坐标变换过程模型矩阵&#xff1a;模型局部坐标系和世界坐标系之…

set row count

SET ROWCOUNT 使 Microsoft&reg; SQL Server 在返回指定的行数之后停止处理查询。 语法 SET ROWCOUNT { number | number_var } 参数 number | number_var 是在停止给定查询之前要处理的行数&#xff08;整数&#xff09;。 注…

【转】C#开发PACS医学影像处理系统(二):界面布局之菜单栏

转自&#xff1a;C#开发PACS医学影像处理系统(二)&#xff1a;界面布局之菜单栏 - 乔克灬叔叔 - 博客园 在菜单栏布局上&#xff0c;为了使用自定义窗体样式和按钮&#xff0c;我们需要先将窗体设置为无边框&#xff0c;然后添加一个Grid作为菜单栏并置顶&#xff0c;Vertical…

WF4.0 基础篇 (二十九) WorkflowInspectionServices

本文例子下载: http://files.cnblogs.com/foundation/WorkflowInspectionServicesSample.rar WorkflowInspectionServices 类 WorkflowInspectionServices可以得到流程中的Activity&#xff0c; 由于WF4.0的ActivityTree相对复杂,并不是象WF3.X的结构那样清晰, 在WF4.0中Activi…

Linux 命令平时积累

我是Windows Live Writer 写博客&#xff0c;来记录我平时遇到的一些问题和解决的方法。 记得刚刚接触Linux的时候&#xff0c;自己真是一名不折不扣的菜鸟&#xff0c;通过一年的努力&#xff0c;自己可以单独操作Linux了&#xff0c;我将把以后遇到的比较有用的命令积累在这篇…

【转】C#开发PACS医学影像处理系统(三):界面布局之工具栏

转自&#xff1a;https://www.cnblogs.com/Uncle-Joker/p/13650330.html 工具栏布局采用WPF中Grid作为容器&#xff0c;按钮采用自定义样式和图标&#xff0c;并采用Separator分割线&#xff1a; XAML设计器代码&#xff1a; 其中 Style"{StaticResource ButtonStyle}&…

WinCE6.0 修改开机Logo方法

中秋假期已过&#xff0c;回来继续该博文主题。今天讲解第二种方法&#xff0c;将 Logo 图片的数据写入到 Nand Flash 中&#xff0c;在启动初始化 LCD 的时候&#xff0c;从固定的地址将数据读出并填充到显示缓存中。实验平台&#xff1a;WinCE6.0Android6410 4.3寸CLD。以下内…

sql 替换text字段中的指定字符

--text不能直接替换 --mbody未目标字段update b_mail set mbodyreplace(convert(varchar(max),mbody),_viewstate,viewstate) where mno124转载于:https://www.cnblogs.com/stealther/archive/2010/04/02/1703191.html

【转】DICOM开发工具总结

转自&#xff1a;DICOM开发工具总结_qimo601的专栏-CSDN博客 网上流行的DICOM协议开发工具&#xff1a; 1、DICOM开发类库主要有&#xff1a; &#xff08;1&#xff09;DCMTK(3.6.0), 官方下载网站,&#xff08;如何安装编译DCMTK3.6.0&#xff09; DCMTK实现了对DICOM图像…

Wince6.0编译错误经验总结

Wince6.0编译错误经验总结 一 编译wince系统并模拟运行应注意的问题 1&#xff09;&#xff1a; Public目录下的代码最好不要擅自修改。在确认需要修改时&#xff0c;得拷贝出来放到BSP目录下&#xff0c;再根据实际情况进行修改。 另外&#xff0c;编译WinCE系统时&#xff…

使用Combres 库 ASP.NET 网站优化

网站优化理论方面可以看杨正祎同学的文章如何提高网页的效率&#xff08;上篇&#xff09;——提高网页效率的14条准则&#xff0c;如何提高网页的效率&#xff08;下篇&#xff09;——Use YSlow to know why your web Slow&#xff0c;本文给你介绍一个实际的类库帮助你完成网…

【转】foreach for each for_each引发的探讨:c++世界中的循环语句

转自&#xff1a;foreach for each for_each引发的探讨&#xff1a;c世界中的循环语句_w_419675647的博客-CSDN博客 一 背景&#xff1a; 代码中看到 for each&#xff0c;注意&#xff0c;两个单词中间没有下划线&#xff0c;有同事问这个是不是和 for_each一样&#xff1f;…