Do I need to Convert with Convert.ToInt32(session("myNumber")) ?

  • Thread starter Thread starter Andreas Klemt
  • Start date Start date
A

Andreas Klemt

Hello,
I have this

session("myNumber") = 888
Dim intNumber As Integer

a) intNumber = session("myNumber")
b) intNumber = Convert.ToInt32(session("myNumber"))


What has better performance and what should I do?

Thanks,
Andreas
 
You are clearly not programming with Option Strict on. You should turn it
on and then you wouldn't have a choice but to select the most performant and
safest method.

b) Explicietly converting is the best way to do it, spefically from a
perfromance point of view...otherwise you are late-binding...which is bad.

Alternative (and better) ways to write b) would be using cint() or
DirectCast...both of which should be faster than Convert.ToInt32 and are
recommeded by Microsoft. You should always explicetly convert. Session,
Application, Context, DataReader and DataRow objects are all great examples
of places that return object, but you are likely implicetly assigning to
ints or strings.

Also, some error handling would be nice ,no?

dim intNumber as integer
try
intNumber = cint(session("myNumber"))
catch ex as FormatException
'maybe you wanna redirect? Maybe you wanna set a default value
catch ex as OverflowException
'maybe you wanna redirect? Maybe you wanna set a default value
end try

Karl
 
Back
Top