1 (int)
强制转型为整型。
当将long,float,double,decimal等类型转换成int类型时可采用这种方式。
double dblNum = 20; int intDblNum = (int)dblNum;
例子中将double型的dblNum显式转换为int型的intDblNum。
2 Convert.ToInt32()
string strNum = "20"; int intStrNum = (int)strNum;
在VS中输入上面的代码,会提示:
无法将类型“string”转换为“int”。
这时,可以使用Convert.ToInt32()方法来完成这个转换。
int intStrNum = Convert.ToInt32(strNum);
当传入的字符串(含空串"")无法转换成int型时,会抛出异常,异常信息为:
输入的字符串格式不正确。
string strNotNum = "2x"; int intStrNotNum = Convert.ToInt32(strNotNum);
当传入参数为null时,Convert.ToInt32()方法会返回0。
int intStrNotNum = Convert.ToInt16(null);//返回0,不抛出异常
Convert.ToInt32()方法 可以转换的类型很多,详细信息请参考:
http://msdn.microsoft.com/zh-cn/library/system.convert.aspx
3 Int32.Parse()
Int32.Parse()方法同样可以将数值型字符串转换成int。
string strNum = "20"; int intStrNum = int.Parse(strNum);
当传入的字符串(含空串"")无法转换成int型时,会抛出异常,异常信息为:
输入的字符串格式不正确。
string strNotNum = "2x"; int intStrNotNum = int.Parse(strNotNum);
当传入参数为null时,会抛出异常,异常信息为:
参数值不能为null。
int intStrNotNum = int.Parse(null);
4 Int32.TryParsed()
Int32.TryParsed()方法与Int32.Parse()方法的区别是:如果输入字符串格式不满足转换的要求,Parse方法会抛出异常;而TryParse方法则不会引发异常,它会返回false表示转换无法进行,同时会将result置为0。
string strNum = "20"; int intStrNum = 0; int result = 0; if (int.TryParse(strNum, out intStrNum)) { result = intStrNum; }
string strNotNum = "2x"; int intStrNotNum = 0; int result = 0; if (int.TryParse(strNotNum, out intStrNotNum)) { result = intStrNotNum; }
当传入参数为空串””或者 null 会返回 false 。