【发布时间】:2010-10-07 22:23:05
【问题描述】:
今天正在使用 IsNumeric 进行一些基准测试,并将其与以下函数进行比较:
Private Function IsNumeric(ByVal str As String) As Boolean
If String.IsNullOrEmpty(Str) Then Return False
Dim c As Char
For i As Integer = 0 To Str.Length - 1
c = Str(i)
If Not Char.IsNumber(c) Then Return False
Next
Return True
End Function
我对结果感到非常惊讶。 使用数值时,它比常规 IsNumeric() 快 8-10 倍,使用空值或非数值时,它快 1000-1500 倍。
什么是 IsNumeric 这么长时间?在用上面的函数替换它之前,我还应该考虑其他事情吗? 我在整个网站的大约 50 个不同的地方使用 IsNumeric,主要用于验证表单和查询字符串。
【问题讨论】:
-
或者如果它是一个负数或像 3.1415926526e0 这样的指数
-
性能重要吗?您是否处于 IsNumeric() 中花费了总执行时间的一小部分的情况?
-
可能不是没有,只是好奇,得到了很多好的答案
标签: vb.net performance isnumeric