Visual Basic .NET/Visual Basic 6 to .NET Function Equivalents

< Visual Basic .NET

The information provided here is intended to help Visual Basic 6 developers who are making the switch to Visual Basic .NET and who wish to learn how to accomplish tasks without the use of the Microsoft.VisualBasic namespace (which contains all of the legacy Visual Basic 6 functions).

Do not be mistaken; by using functions in the Microsoft.VisualBasic namespace, you are not using "old code," because all of those functions map to their new equivalents within the .NET Framework. The main benefit of avoiding these functions is so you can familiarize yourself with the namespaces contained in the .NET Framework.

If you would like to remove the Microsoft.VisualBasic namespace, you can do one of two things:

  • Manually remove the import every time you start a new project.
  • Create a project template that does not include the Microsoft.VisualBasic namespace.

To create a template, take look at these links:



  • Some functions listed here may not be exact equivalents, but are the closest that are available.
  • You are encouraged to use the Object Browser (F2) to explore the .NET namespaces yourself.
  • Click on any of the .NET equivalent functions to visit Microsoft Developer Network and find out more information about that function.



Files & DirectoriesEdit


Visual Basic 6 .NET Equivalent
Filter Array.BinarySearch
UBound Any Type of Array.GetUpperBound(0)

Date & TimeEdit

Visual Basic 6 .NET Equivalent
DateAdd Date Object.Add
DateDiff Date Object.Subtract
Now DateTime.Now


Visual Basic 6 .NET Equivalent
Abs Math.Abs
Atn Math.Atan
Cos Math.Cos
Exp Math.Exp
Fix Math.Truncate, Math.Floor (for negative numbers), Math.Ceiling (for positive numbers)
Int Math.Floor
Log Math.Log
Randomize Deprecated - Random Object is automatically randomized declared
Rnd System.Random Object.Next
Round Math.Round
Sgn Math.Sign
Sin Math.Sin
Sqr Math.Sqrt
Tan Math.Tan

External linksEdit