Extremely responsive, personalized customer support
Easy to use
Produces helpful notes, warnings, and 'to do' comments
Excellent learning tool for those new to VB.NET
The Most Comprehensive C# to VB Converter
Converts all versions of C# code
Evaluates all referenced assemblies and .NET projects in order to resolve external references more completely
Numerous conversion and formatting options
Accurate LINQ query C# to VB conversion
Excellent conversion of event handlers from C# to VB
Flawless conversion from C# to VB for all aspects of inheritance and interfaces
Converts ASP.NET script (aspx, asmx, ascx, ashx, and asax files) from C# to VB.NET
Converts ASP.NET 'code-behind' files (aspx.cs files) from C# to VB.NET
Allows custom replacement of strings in the final converted code
Accurate even with poorly formatted C# code
Note: "unsafe" code blocks and types are not converted.
Q: Is the original C# project altered in any way?
Your existing code is left completely intact. The new VB.NET project
is written to the new location that you specify.
Q: Can the converter produce VB6 code?
No. Only VB.NET code is produced.
Q: Do you guarantee a 100% complete conversion?
No. Our accuracy is the highest in the industry - over 99%
(99.98% on Microsoft's "101 C# 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 C# to
VB 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 C#
code samples. Most converters, including Instant VB,
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 VB will clearly show its superiority.
Q: What about C# 'unsafe' code?
The converter does not convert 'unsafe' code. There is no
reasonable equivalent in VB.NET. These sections are commented in the conversion output.
Q: Are all C# features converted?
We convert all C# features that have VB equivalents. Unfortunately,
there are some features, especially starting with C# 2017, that simply have no equivalent. These include:
local functions, case statement pattern variables, case statement 'when' conditions, pattern
variables in 'is' expressions, tuple deconstruction declarations, 'ref return' methods, 'ref locals',
and throw expressions.
Q: What are the most common adjustments necessary after conversion?
VB does not allow assignments within expressions, but C# does (e.g.,
while ((x = y()) > 0) assigns a value to x as part of an
expression). Instant VB will convert some cases, but will mark other more
complex cases with a "ToDo" comment. You must manually
Most reference type comparisons are converted, but occasionally you
may need to manually change an equals sign to "Is". The
VB compiler makes these adjustment requirements obvious.
Unfortunately, many new C# features beginning with C# 7 have no equivalent in VB. This includes
'throw expressions', 'ref returns', 'ref locals', local functions, 'pattern variables', and 'switch' enhancements such as pattern expressions.
Instant VB detects these, comments out some code, and provides 'todo' notes.
"unsafe" code blocks and types are not converted.
Files with cshtml extensions (using 'Razor' syntax) are not converted.
VB does not allow overloading when it is based only
on the direction of the parameters (ByVal vs ByRef). Methods overloading done this
way will require renaming of the method name in VB.
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.