• Saves Valuable Time
  • Trusted Accuracy for 12 Years
  • 15-Day Money-Back Guarantee

VB.NET to C# Converter – Instant C#

Instant C# produces great C# code, saving you hours of painstaking work and valuable time.

Try the Free Edition

  • Free
  • High-quality conversion
  • Convert projects up to 2000 lines
  • Convert snippets up to 200 lines

Purchase the Premium Edition

  • $159 US (15-day money-back guarantee)
  • High-quality conversion
  • Unlimited project conversion length
  • Unlimited snippet conversion length

10 Second Overview

*Scroll right to see Instant C# in action!

Key Benefits

The Most Comprehensive VB to C# Converter


Your existing code is left completely intact.  The new C# project is written to the new location that you specify.

No.  Our accuracy is the highest in the industry - over 99% (99.98% on Microsoft's "101 Visual Basic Code Samples"), but there will be some minor tweaks required in all but the most trivial projects.  Read the rest of the FAQ to get an idea of a few things that are not converted. It is critical to try some of your own code when comparing VB to C# converters since it is very easy to create a converter that does very well on a specific set of projects, such as Microsoft's published 101 VB code samples.  Most converters, including Instant C#, are regularly tested against these sample projects.  The most important criterion is how well the converter does on your own code, and this is where Instant C# will clearly show its superiority.

No.  The most effective and safest way to get from VB6 to C# is to use an upgrade tool (3rd party or the VS 2008 Upgrade Wizard) on your VB6 code, and then use Instant C# on the resulting VB.NET code.

By default, we convert to C# optional parameters (available since C# 4), but we offer an option to convert to overloaded methods.

Instant C# inserts a helper class to replicate the behavior of the VB Collection class.

You have the option of leaving them as is (via reference to the Microsoft.VisualBasic namespace), or converting some of them to their closest .NET equivalent string method. Note that this may be risky if you are depending on some of the very strange quirks of the classic VB string functions (e.g., Left(x, 2) returns an empty string if x is unassigned, while .NET appropriately raises an exception when x.Substring(0, 2) is attempted).

Yes, VB 'Select Case' blocks containing range expressions are converted to C# 'if-else' blocks.  Other 'Select Case' blocks are either converted to C# 'switch' statements if the expressions are constant (a requirement in C#) or to C# if-else blocks otherwise.

  • If the VB project did not have 'Option Strict On' set, then you'll likely have a number of cases where different types are compared with each other - these may need adjustment.
  • Although most On Error GoTo statements are converted, some elements of classic VB unstructured error handling (On Error Resume Next, On Error GoTo -1, etc.) are not converted by Instant C#. These statements are marked as a 'ToDo' task. Also, all references to the VB Err object are not converted and marked as a 'ToDo' task.
  • Some references to the Microsoft.VisualBasic namespace are left intact (the code will run via references to the .NET Microsoft.VisualBasic namespace).  You have the option of converting many of the .NET Microsoft.VisualBasic methods which have .NET equivalents, but in general Instant C# does not rewrite functionality in the .NET Microsoft.VisualBasic namespace.
  • Files with vbhtml extensions (using 'Razor' syntax) are not converted.
  • Universal Windows Platform apps (formerly 'Metro', 'WinRT', or 'Windows Store' apps) are converted, but the converter cannot discover type information which is inside .winmd files. There are a couple of possible work-arounds, but they will not work consistently for all users. This means that there will be more manual adjustments required for Universal app conversions, until Microsoft provides a coherent approach to reading .winmd files from desktop applications, such as our converters.

Additional Resources

VB.NET and C# equivalents chart

C# – Visual Basic Bilingual Dictionary

VB.NET to C# conversion tips

Copyright © 1997 – 2017 Tangible Software Solutions Inc.