Try
Dim tokenS As String = token.ToString
Dim reNum
Dim index = tokenS.IndexOf(".")
If index > 0 And index < tokenS.Length - 1 Then
reNum = Decimal.Parse(tokenS)
Else
reNum = Integer.Parse(tokenS)
End If
Return reNum
Catch ex As Exception
Return 0
End Try
之前写了这么一个方法,来将传过来的对象,转换为数字形式返回。
开发以及测试阶段并没有发现什么问题。
但是!!!
当交付给客户时,客户方用大量数据测试时,发现使用此方法的画面,响应非常非常慢。
于是乎,我们这边就来回找的问题,逐行,逐句的找...但是逻辑似乎没有一点问题啊
终于在两天后,发现了这个东西
在一个for循环里,作为循环条件,调用了这个方法,当传过来的对象为空时,就会进catch。
不凑巧的是,客户测试的数据,该字段大量为空,以至于这边就一直进catch....导致程序的性能直线下降。
最后,check了一下那个字段,为空时转0,再调这个方法。
写此信息,以警后人!