C#中(int)a和Convert.ToInt32(a)的区别
首先,在 C# 中,int 其实就是 System.Int32,即都是32位的。 其次,(int) 和 Convert.ToInt32 是两个不同的概念,前者是类型转换,而后者则是内容转换,它们并不总是等效的。我们很清楚 C# 提供类型检查,你不能把一个 string 强制转换成 int,隐式转换就更加不可能,例如如下的代码就行不通了: string text = "1412";
int id = (int)text; 因为 string 和 int 是两个完全不同并且互不兼容的类型。说到这里,你可能会问什么才算是兼容的呢?其实,能够使用 (int) 进行强类型转换的只能是数值类型了,例如 long、short、double等,不过进行这种转换时你需要考虑精度问题。 然而,我们很清楚上面的代码中 text 实际上储存的是一个数值,我们希望把这个数值提取出来并以 int 的形式储存起来以便日后的运算使用,那么你就需要进行内容转换了。内容转换也叫内容解释,我们把上面的代码稍稍修改就可以达到目的了: string text = "1412";
int id = Convert.ToInt32(text); 除此之外,你还可以使用 Int32.Parse 和 Int32.TryParse 来进行解释。 另外,你发现 Convert.ToInt32 有很多重载版本,例如 Convert.ToInt32(double value);,当我们用这个版本来把一个 double 转换成 int 时,ToInt32 会检查被转换的数值是否能够用 int 表示,即是否会发生“越界”,如果是就会抛出 OverflowException,否则就会为你转换,但使用 (int) 进行强制转换,如果被转换的数值大于 Int32.MaxValue,那么你将得到一个错误的结果,例如下面的代码: double d = Int32.MaxValue + 0.1412;
int i = (int)d; 不过无论你进行什么数值转换,精度问题都是必须考虑的。
C#中(int)a和Convert.ToInt32(a)的区别的更多相关文章
- C#中(int)a和Convert.ToInt32(a)有什么区别
首先,在 C# 中,int 其实就是 System.Int32,即都是32位的. 其次,(int) 和 Convert.ToInt32 是两个不同的概念,前者是类型转换,而后者则是内容转换,它们并不总 ...
- C#中(int)、int.Parse()、int.TryParse()和Convert.ToInt32()的区别
转自:http://www.cnblogs.com/leolis/p/3968943.html 在编程过程中,数据转换是经常要用到的,C#中数据转换的方法很多,拿将目标对象转换为 整型(int)来讲, ...
- C#中(int)、int.Parse()、int.TryParse()和Convert.ToInt32()的区别 <转>
作者:Statmoon 出处:http://leolis.cnblogs.com/ 在编程过程中,数据转换是经常要用到的,C#中数据转换的方法很多,拿将目标对象转换为整型(int)来讲,有四种方法 ...
- (int)、int.Parse()、int.TryParse()和Convert.ToInt32()的区别
C#中(int).int.Parse().int.TryParse()和Convert.ToInt32()的区别 原文链接:http://www.cnblogs.com/leolis/p/3968 ...
- Int.Parse()、Convert.toInt32()和(int)区别
通过网上的查询从而了解了Int.Parse().Convert.toInt32()和(int)区别. 一.定义上的差别 int类型表示一种整型,.NET Framework 类型为 System.In ...
- (int)、int.Parse()、int.TryParse()、Convert.ToInt32()区别
请看代码: //1.null. //int i1 = (int)null;//编译时报错:无法将“null”转换为“int”,因为后者是不可以为“null”的值类型. //int i2 = int.P ...
- c#中(int)、int.Parse()、int.TryParse、Convert.ToInt32的区别
本文来自:http://blog.csdn.net/tangjunping/article/details/5443337 以前经常为这几种数据类型转换方式而迷茫,这次为了彻底搞清它们之间的区别和优缺 ...
- C#/.NET整数的三种强制类型转换(int)、Convert.ToInt32()、int.Parse()的区别
这三种方式都是强制把内容转换为整数,但他们之间是有区别的,如下: 一.(int)适合简单数据类型之间的转换,C#的默认整型是int32(不支持bool型). 二.int.Parse(string sP ...
- int.Parse()、int.TryParse()和Convert.ToInt32()的区别
1:int.Parse(一个参数) 此参数必须满足: 1 只能是字符串: 2 只能是 “整型” 字符串,即各种整型ToString()之后的形式,也不能为浮点型. 2:int.TryPa ...
随机推荐
- 让VS2010记住TFS的登陆用户名和密码
用VS进行团队开发的都知道,每次打开VS连接TFS的时候,都要提示输入用户名和密码,每次都这样无疑感觉太多此一举了(当然你不想别人操作你的电脑就直接进入项目就没必要这么做),为了像连接远程那样可以记住 ...
- ASP.NET MVC 使用MSBuild部署的几个注意事项
ASP.NET MVC 使用MSBuild部署的几个注意事项 做新项目,当时参考NopCommerce的结构,后台Nop.Admin是一个独立的Area Web Site,但部署的时候发现,使用一键发 ...
- lnmp1.0 升级php.5.4.28 后出错 Nginx 502 Bad Gateway
碰到一个很奇怪的问题,用lnmp自带的./upgrade_php.sh升级 php5.4.27正常.但升级到php5.4.28就出错,访问p.php 提示:Nginx 502 Bad Gateway. ...
- MVC 4 插件化架构简单实现实例篇
ASP.NET MVC 4 插件化架构简单实现-实例篇 先回顾一下上篇决定的做法: 1.定义程序集搜索目录(临时目录). 2.将要使用的各种程序集(插件)复制到该目录. 3.加载临时目录中的程序集 ...
- 一个Shell小脚本——旋转的斜杠
话不多说,请从代码中寻找乐趣吧! #!/bin/bash #----中断计数器----# incr= #----旋转的斜杠----# spin="/-\|" echo -en &q ...
- [转]ARM/Thumb2PortingHowto
src: https://wiki.edubuntu.org/ARM/Thumb2PortingHowto#ARM_Assembler_Overview When you see some assem ...
- 大数据之HBase
大数据之HBase数据插入优化之多线程并行插入实测案例 一.引言: 上篇文章提起关于HBase插入性能优化设计到的五个参数,从参数配置的角度给大家提供了一个性能测试环境的实验代码.根据网友的反馈,基于 ...
- TPL相关
C#中的Timer System.Windows.Forms.TimerSystem.Threading.Timer System.Timers.Timer 1.System.Windows.Form ...
- jQuery图片切换插件jquery.cycle.js
Cycle是一个很棒的jQuery图片切换插件,提供了非常好的功能来帮助大家更简单的使用插件的幻灯功能 下载cycle插件并引入,此时,注意把引入它的代码放在引入jQuery主文件之后. <he ...
- 解决phpmailer可以在windows下面发送成功, 在linux下面失败的问题
谢天谢地...差点因为在linux下面phpmailer发送邮件失败转到了window+IIS... Godaddy的linux服务器无法用phpmailer发送(我用的是网易的邮箱服务器...虽然现 ...