Link to home
Start Free TrialLog in
Avatar of gbmcneil

asked on

Accessing VB 6.0 functions in VB.NET

Hello Experts -

While trying to figure out how to test a string to determine if it held numeric data, I came across a web site that claimed that the functions found in the old standby VB were accessable in VB.NET.

Specifically, the site said:

"Looking for IsNumeric in VB.NETt

"I was wondering why a VB.NET class file was throwing up errors when I called the IsNumeric function the other day. After some googling i found out from Roy Osherove’s blog that you now need to import the Microsoft.VisualBasic Namespace to use this and a bunch of other once standard functions."

Is this true? If so, how exactly woud I go about importing the VB Namespace?

Maybe this is already common knowledge. Don't be too tough on me here. I'm only a beginner.

Avatar of PagodNaUtak
Flag of Philippines image

Link to home
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of gbmcneil


And, then I can take a VB 6.0 function like DateDiff and use it in VB.NET?
After putting it on top of your code you can use the IsNumeric Function of VB6 but as a suggestion avoid using those functions.

Yes, but this approach is not recommended...
Are we talking potential corruption here. Or, just bad programming practice?
We are talking about bad programming practice...

VB.Net is a new language, if you want to use the full potencial of avoid using functions that is from vb 6.0. There are new function in you just have to dig it down.

I understand what you are into, I used to be a vb 6.0 guy but when I understand the language (not an expert on this) I realize I have to forget those vb 6.0 function and move forward, if not, what is the sense of using this new language than programinng in vb 6.0.
Avatar of Mike Tomlinson
I agree that you should strive to use only the newer native VB.Net functions.  One big reason is that the legacy functions are still ONE based, while the newer functions are ZERO based.  When you allow yourself to mix the old and new you can inadvertently create "off by one" bugs that are very hard to troubleshoot...
Thanks very nuch for your help.
It seems to me that VB.NET's program environment environment is phenominal, if you can just figure out the attribute or method you looking for. This is another way of saying I don't think the documentation is very good.

I spend hours just trying to figure out what function I need. I live on The Experts Exchange because it's the only way to make any progress programming.

Have you ever seen a good reference manual for VB.NET - without all the explanations? Just lists of attributes and methods.

I am led to believe that NET.Framwork consists of a 150,000 such descriptors.  
Hi Idle -

What do you mean by "one based" versus "zero based"?
For instance, the legacy Mid() function is replaced with Substring().

Using Mid(), the first character in the string is accessed using 1 (one).
Using Substring(), the first character in the string is accessed using 0 (zero).
Will you tell my mother if I continue to use Mid()?
I'm sure she'd be concerned and might stage an intervention!

If you only plan on developing in VB then use whatever floats your boat.  =)

One advantage to learning and using the native .Net functions is that you can theoretically jump to C# easier since the functions will be the same and only the syntax would differ.
That day is not going to occur in my lifetime (and I'm not ninety years old).
A last minute question. Is it called -

Imports Microsoft.VisualBasic.Information


Imports Microsoft.VisualBasic.Compatibility

and, if Microsoft.VisualBasic.Information is VB.NET VisualBasic, why would someone load a function library that already exists in VB.NET?