- HttpContext.Current.User.Identity.Name为什么获取的是自己的机器名
- vs2005新建网站和新建项目的区别?
- utf8mb4和utf8mb3区别
- php中htmlentities()函数的定义及用法
- 解决IE6、IE7、IE8、Firefox兼容的几种方案
- C#代码与javaScript函数的相互调用
- display:inline、block、inline-block的区别
- 网站优化(seo)策划书的主要内容提要
- 淘宝、京东发展过程
- C# Cookies跨域登陆(写入cookie登录)
邮箱:
手机:15383239821
C#/.NET整数的三种强制类型转换的区别总结
强制类型转换
在C#中,我们可以看到三种强制类型转换,比如强制转换成有符号32位整型,可以找到下面三种方式:
① (int)() ②Convert.ToInt32() ③int.Parse()
三种转变在有些数据时可以通用,但是用法上仍然有很大的区别
(int)适合简单数据类型之间的转换,C#的默认整型是int32(不支持bool型)。
(int)表示使用显式强制转换,是一种类型转换。当我们从 int 类型到 long、float、double 或decimal 类型,可以使用隐式转换,但是当我们从 long 类型到 int 类型转换就需要使用显式强制转换,否则会产生编译错误。
int.Parse(string sParameter) 是个构造函数,参数类型只支持string类型,Parse就是把String类型转换成int,char,double....等,也就是*.Parse(string) 括号中的一定要是string类型。
Int32.Parse()表示将包含数字的字符串转换为32 位有符号整数,属于内容转换
我们一种常见的方法:public static int Parse(string)。
如果 string 为空,则抛出 ArgumentNullException 异常;
如果 string 格式不正确,则抛出 FormatException 异常;
如果 string 的值小于 MinValue 或大于 MaxValue 的数字,则抛出OverflowException 异常。
Convert.ToInt32() 适合将Object类型转换为int型;Convert可以提供多种类型的转换,也就是Convert.*()括号中可以为很多种类型(包括string)。
Convert.ToInt32() 则可以将多种类型(包括 object 引用类型)的值转换为 int 类型,因为它有许多重载版本[2]:
public static int ToInt32(object);
public static int ToInt32(bool);
public static int ToInt32(byte);
public static int ToInt32(char);
public static int ToInt32(decimal);
public static int ToInt32(double);
public static int ToInt32(short);
public static int ToInt32(long);
public static int ToInt32(sbyte);
public static int ToInt32(string);
Convert.ToInt32() 和 int.Parse()对于空值(null)的处理不同,Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常。
对于数字的精确度不同:
(1).Convert.ToInt32(double value) 如果 value 为两个整数中间的数字,则返回二者中的偶数,即 4.5 转换为 4,而 5.5 转换为 6
(2).int(4.6) = 4,int转化其他数值类型为int时没有四舍五入,强制转换(截取整数部分)。
可以看出来,Convert.ToInt32() 的功能是最强大的,它把Int32.Parse()功能包括了,也是说是Int32.Parse()是Convert.ToInt32() 的一种特殊情况。
-
2013-10-31移动平台对 meta 标签的定义
-
2023-11-20HTTP 请求头里的一些含义
-
2010-10-02C#本质;方法和参数
-
2010-11-17走出百度沙盒 只有三步可走
-
2014-03-24网站建设流程
-
2010-10-02SQL语句大全
