(int)、int.Parse()、int.TryParse()、Convert.ToInt32()区别

请看代码:

//一、null。
//int i1 = (int)null;//编译时报错:没法将“null”转换为“int”,由于后者是不能够为“null”的值类型。
//int i2 = int.Parse(null);//执行时报错:“System.ArgumentNullException”,值不能为 null。
//int i3;
//bool b1 = int.TryParse(null, out i3);//b1 = False,i3 = 0。
//int i4 = Convert.ToInt32(null);//i4 = 0。

//二、""。
//string s1 = "";
//int i1 = (int)s1;//编译时报错:没法将“string”装换为“int”。
//int i2 = int.Parse(s1);//执行时报错:“System.FormatException”,输入字符串的格式不正确。 
//int i3;
//bool b1 = int.TryParse(s1, out i3);//b1 = False,i3 = 0。
//int i4 = Convert.ToInt32(s1);//执行时报错:“System.FormatException”,输入字符串的格式不正确。 

//三、小数。
//double d1 = 1.2D;
//double d2 = 1.5D;
//double d3 = 1.8D;
//int i1 = (int)d1;//i1 = 1\1\1。
//int i2 = int.Parse(d1.ToString());//执行时报错:“System.FormatException”,输入字符串的格式不正确。 //int i3; //bool b1 = int.TryParse(d1.ToString(), out i3);//b1 = False,i3 = 0。 //int i4 = Convert.ToInt32(d3);//i4 = 1\2\2 //四、整数。 //byte b1 = 10; //int i1 = (int)b1;//i1 = 10。 //int i2 = int.Parse(b1.ToString());//i2 = 10。 //int i3; //bool b2 = int.TryParse(b1.ToString(), out i3);//b2 = True,i3 = 10。 //int i4 = Convert.ToInt32(b1);//i4 = 10。

总结以下:spa

(int)数字类型:整型取整,小数取整(不存在四舍五入),其余类型异常。code

int.Parse(整型.ToString()):整型.ToString()取整,其余类型异常。orm

int.TryParse(整型.ToString(), out int i):整型.ToString()取整,返回True,其余类型返回0,返回False。blog

Convert.ToInt32(多种类型):数字类型.ToString()取整,null返回0,其余类型异常。其中,若是值是两个数字中间的小数,返回两者中的偶数,其他正常四舍五入,好比3.4返回3,3.5返回4,3.6返回4。字符串

 

以上是我对值类型与引用类型的理解,但愿能够给须要的朋友带来帮助。string

相关文章
相关标签/搜索