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

从int到long、float、double或decimal的预定义隐式转换。例如:

//123是一个整数,它是隐式转换成float类型 float f = 123;

从sbyte、byte、short、ushort或char到int的预定义隐式转换。例如,如果不进行强制转换,下面的赋值语句将会在编译时报错:

long longTest = 22;  //错误:无法将类型“long”隐式转换为“int”。存在一个显式转换(是否缺少强制转换?)  int i = longTest;  int i2 = (int)longTest; //显示转换
 但是还要注意,不存在从浮点型到int类型的隐式转换。例如,除非使用显式强制转换,否则以下语句将会在编译时报错:
 //错误:无法将类型“double”隐式转换为“int”。存在一个显式转换(是否缺少强制转换?)  int z = 3.5;  //使强制类型转换,y的值是3,这也是上面所提到(int)强制类型转换有丢失数据的风险  int y = (int)3.5;
 Int32.Parse方法仅允许将字符串转换成整型。
 Convert.ToInt32(String,IFormatProvider)底层调用了Int32.Parse。然而假如我们传入一个空字符串会返回0.但是如果是传递给Int32.Parse就会抛出
ArgumentNullException异常。
 我们可以通过.NET Reflector查看到这个静态的方法。
 public static int ToInt32(string value, IFormatProvider provider)  {      if (value == null)      {          return 0;      }      return int.Parse(value, NumberStyles.Integer, provider);  }  调用了int.Parse(value, NumberStyles.Integer, provider); 这个方法。
 当源变量的值比Int32.MaxValue大或者比Int32.MinValue小,Convert.ToInt32会抛出OverflowExcetion异常。但是使用(int)则不会。
 Convert.Toint32将舍入到最接近的32位有符号整数。如果值为中间两个的整体数字则返回偶数;这就是4.5转换为4,而5.5转换为6.而在另一方面
 (int)只是截断小数部分。
 最后来讲一讲Int32.TryParse。此方法是将字符串转换为等效的32位有符号整数。操作是否成功的返回值。
 注意:它是一个bool的方法。
 通过.NET Reflector查看。
 public static bool TryParse(string s, out int result)  {      return Number.TryParseInt32(s, NumberStyles.Integer, NumberFormatInfo.CurrentInfo, out result);  }

如果s转换成功,则为true;否则为false。示例:

string str = "w3"; int i; //输出转换失败  if (Int32.TryParse(str, out i)) {       //转换成功 } else {       //转换失败 }
上面我们定义的str的值是w3,所以它转换的时候去判断不是32位整数,则返回的是false。

注:TryParse方法类似Parse方法,不同之处在于TryParse方法转换失败时不引发异常。

(int),Int32.Parse,Convert.ToInt3…相关推荐

  1. (int),Int32.Parse() 和 Convert.toInt32() 的区别

    在 C# 中,(int),Int32.Parse() 和 Convert.toInt32() 三种方法有何区别? int 关键字表示一种整型,是32位的,它的 .NET Framework 类型为 S ...

  2. 在 C# 中,(int) ,Int32.Parse() 和 Convert.toInt32() 三种方法的区别

    在 C# 中,(int),Int32.Parse() 和 Convert.toInt32() 三种方法有何区别? int 关键字表示一种整型,是32位的,它的 .NET Framework 类型为 S ...

  3. (.Net常识)(int),Int32.Parse,Conver.ToInt32三者在什么情况下使用以及其区别。

    三者分别侧重在以下情况下使用: (int) : 适合简单数据类型之间的转换,在对long 类型或是浮点型到int 类型的显式强制转换中使用,但是如果被转换的数值大于 Int32.MaxValue 或小 ...

  4. C#/.NET整数的三种强制类型转换(int)、Convert.ToInt32()、int.Parse()的区别

    1.(int) 适合简单数据类型之间的转换,C#的默认整型是int32(不支持bool型). 2. int.Parse(string sParameter) 是个构造函数,参数类型只支持string类 ...

  5. 有关int,Int32的疑惑解答

    疑惑1:int.System.Int32和int32的区别 1. int32是IL中的基元类型(primary type),int和System.Int32是对int32进行了封装. 2. int和S ...

  6. [网摘]---有关int,Int32的疑惑解答

    有关int,Int32的疑惑解答 疑惑1:int.System.Int32和int32的区别 1. int32是IL中的基元类型(primary type),int和System.Int32是对int ...

  7. .net Int16 、(int Int32)、 Int64 的区别

    2019独角兽企业重金招聘Python工程师标准>>> .net Int16 .(int Int32). Int64 的区别 easonjim 2015-09-25 01:41:00 ...

  8. error C2664: 'LONG CTabCtrl::InsertItem(int,TCITEMW *)' : cannot convert parameter 2 from 'char *' t

     刚刚用vs2005写TAB控件时遇到字符集问题 代码如下: [cpp] view plain copy print ? m_tab.InsertItem(0,"进程"); m ...

  9. C#中(int),int.Parse,int.TryParse,Convert.ToInt32四则之间的用法

    今天忽然遇到了 int 转型的问题 同样转int型 结果 用int.Parse() 这种方式转世错的 用Convert.ToInt32的方式转却正确 所以今天特意上网搜了下 在这共享下 有需要的看下吧 ...

最新文章

  1. java appendchild_详解javascript appendChild()的完整功能
  2. VS2019配置opencv环境时找不到Microsoft.Cpp.x64.user.props
  3. java中如何创建子包,父包类可以从java中的子包类访问?
  4. BootStrap笔记-栅格系统
  5. 2018年android手机版本统计,安兔兔发布2018年12月Android手机性能排行榜
  6. linux centos网卡配置,centos网卡配置详解
  7. 陈广老师 C#语言参考视频打包下载地址
  8. 吴裕雄 01-mysql管理
  9. 数字阵列麦克风处理技术概述
  10. OCCT示例学习笔记1--Viewer2d项目
  11. RedHat(RHEL)6.2 X64 Oracle11g X64 安装参考文档
  12. iphone 弹出键盘,文本框自动向上移动。
  13. 刻在我心底的名字吉他谱-凡凡吉他教室编制
  14. python获取图片像素点颜色_Python获取图片位置像素色值及判断色值是否存在
  15. 量子计算机能为我们做什么,为实现量子计算,我们还需要做些什么
  16. 永久修改DNS域名服务器
  17. 2023年法定节假日配置Mysql
  18. C语言调用函数时参数传递实测(好久以前记录的)
  19. 1.2.2 musl pwn
  20. icmp协议 主机探测 java 网盘_ping 原理与ICMP协议

热门文章

  1. 惠普:某些 SSD 驱动的寿命只有32,768 小时(3年多),立即更新!
  2. spring boot 2.0.3+spring cloud (Finchley)6、配置中心Spring Cloud Config
  3. Traefik-kubernetes 初试
  4. C#DataTable2Json(附时间格式化)
  5. mysql 常用配置
  6. 关于armhf (hard-float ABI for ARM)
  7. python 多线程就这么简单(续)
  8. python 多线程就这么简单
  9. 一个通用的Makefile模板-转
  10. CCCC-GPLT L1-033. 出生年 天梯赛