Convert.ToInt32与TryParse

Jua*_*nez 5 c# java performance exception tryparse

我们都知道许多抛出的异常对我们的应用程序的性能可能产生的影响,因此,我们应该远离诸如使用控制流的异常之类的东西.在这个声明之后我必须承认,在编码时我并不在乎这个问题.我一直在Java平台上工作,但最近我在.NET平台上做了这个,并且发现了这个方便的方法:public static bool TryParse(string s,out int result) 它允许你将String转换为int而不引发异常.从那一刻起,我就继续使用它.我只想问你关于使用public static bool TryParse(string s,out int result)or的偏好public static int ToInt32(string value).

从Java的角度来看,只是指出它缺少这样一个类似的方法,尽管我们可以通过以下方式得到它:

boolean isInteger = Pattern.matches("^\d*$", myString);

谢谢.

Cal*_*lum 7

是的,Java缺少类似的方法,虽然没有out参数,但实际上很难表达(虽然想要返回原语).但是,一般情况下,在C#中,TryParse如果期望值有时不是整数,则应该使用,ToInt32否则; 这样,"特殊"情况就这样对待了.

特别是如果性能是你想要的主要原因TryParse,你发布的正则表达式匹配方法要差得多.异常(实际上,非常小)的性能"费用"与错误地使用它们可以轻易理解控制流程的数量相比是相形见绌的.