int, Int32.Parse和Convert.ToInt32的不同之处(分享)

 

  为了帮助大家更好地学习 .Net Framework 技术,微软论坛技术支持团队编辑了一些列的 ".Net Framework 常见问题及解答" 精华帖。

 

本帖的主题是:(int), Int32.Parse和Convert.ToInt32有什么不同之处?

 

如果您觉得这个帖子对您的学习、工作有所帮助,请再把这个帖子分享给你的同学、同事和朋友。

 

如果您想阅读更多的 ".Net Framework 常见问题及解答",请打开索引页面:
http://social.msdn.microsoft.com/Forums/zh-CN/2212/thread/b8c520b0-3ae8-4129-88a6-6221863a09c4

 

 

  (int)是一种被称为强制转换的显示转换。源变量和目标变量必须是兼容的。并且有丢失数据的风险。因为目标变量的类型大小小于源变量。

允许显示数值转换的列表可以参考下面链接。

http://msdn.microsoft.com/en-us/library/yht2cx7b.aspx

Int32.Parse方法仅允许将字符串转换整型。

Convert.ToInt32(String, IFormatProvider)底层是调用Int32.Parse. 然而假如我们传入一个空字符串会返回0. 但是如果是传递给Int32.Parse就会抛出ArgumentNullException异常。

当源变量值比Int32.MaxValue大或者比Int32.MinValue小,Convert.ToInt32会抛出

OverflowExcetion异常。但是使用(int)则不会。

Convert.ToInt32 将舍入到最接近的 32 位有符号整数。如果值为中间两个的整体数字则返回偶数;这就是 4.5 转换为 4,而 5.5 转换为 6。而在另一方面 (int) 只是截断小数部分。

如果想了解更多关于强制类型转换和类型转换,可以参考下面的文档。

Casting and Type Conversions (C# Programming Guid)  

http://msdn.microsoft.com/en-us/library/ms173105.aspx

Type Conversions in Visual Basic

http://msdn.microsoft.com/en-us/library/hcb26cc8(VS.80).aspx

有关的帖子:

http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/1ca53a60-e094-4073-ab33-27cca0bdbad4

 

 

posted @   哪啊哪啊神去村  阅读(265)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示