1 //第一种做if判断 2 int iID; 3 if (long.TryParse(txtString, out iID) 4 { 5 6 } 7 //第二种直接转换 8 var iID=int.Parse(txtString)
我想问,我是不是可以直接用第二种,这两种方式有啥区别
可以直接用第二种,性能要好,前提是你必须保证你的parse不出异常或自己处理异常。
tryparse等同于:
int iID;
try
{
iID = int.Parse(txtString);
}
catch
{
//这里处理失败的情况
}
用Parse必须保证不出异常或自己处理异常
那和Convert.ToInt32岂不是没区别了。。。
@new_ITP: 有区别啊。parse如果对象是null的时候会出异常的。Convert.ToInt32就不会,会返回0
@new_ITP: 除了上面的回答之外,他们之间还有一个区别:Convert.ToInt32支持把一个object转换为int,但parse只支持字符串。
另外,使用int.parse比convert.toint32可读性来说,int.parse要好点。
@519740105: 博客园真是个好地方,这是我最大的感受,谢谢
TryParse相当于Parse逻辑加了个异常处理,失败时返回False。