Scott M. said:
Hi Jimmy,
Before I get to your conversion code, I must just say that you've got to
approach VB .NET 2005 with the understanding that it is not just a new
version of VB 6. It is a completely different beast, it runs on an
entirely new runtime and although some of its' syntax is similar to VB 6,
there really isn't much it has in common with VB 6. That's why you'll
find lots of things that worked in VB 6 that don't in VB .NET.
Also, you should turn Option Strict on and leave it on forever in VB .NET.
This setting makes VB .NET a type-safe language like C# and although it
will mean that you will have to write more code at times, it will ensure
that the code you have is much more bullet proof come runtime.
Now, addressing your If...Then logic:
First, you should lose the "goto" as this was never considered good
programming practice (unless you go back to QBASIC). Place the code you
want to run if your condition is true in the true section of the If
construct or create a separate sub/function and simply call it from the
true portion of the If construct.
Next, your conversion problem stems from the compound statement. Your If
statement, it translates to:
If j and 2 then
Which doesn't make much sense and the compiler sees two different data
types trying to be compared. Since one side of your compound statement
will return a Double and the other side will return a Long and the
compiler won't do impicit conversions for you, you must make sure both
sides of the compound statement have the same type. This wouldn't be
necessary if both sides were expressions (if j <> 0 And 2^0 = 2 then your
code would work just fine)
If you can explain what it is you are realy trying to test, I can help you
write the If logic more clearly.
-Scott