FAQ for Instant VB – C# to VB Converter
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: 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 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 adjust these.
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.
"Unsafe" blocks cannot be fully converted since VB has no corresponding concept. These are marked with "ToDo" comments.
VB does not allow overriding properties or implementing interface properties when the properties differ in their ReadOnly or WriteOnly status. These will require manual adjustment.
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.
There is a certain style of sloppy syntax seen on some ASP.NET MVC pages, which allows nesting of markup language within C# coding constructs such as lambdas or initializers. These have no VB equivalent, so these pages cannot be converted at all.