今天正在使用 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,主要用于验证表单和查询字符串。