Tangible Software Solutions
The Most Trusted Name in Source Code Conversion
Q: Is the original VB project altered in any way?
Your existing code is left completely intact. The new C# 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 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.
Q: Does Instant C# convert VB6 projects to C#?
No. The most effective and safest way to get from VB6 to C# is to use the upgrade wizard (included with Visual Studio 2008 or earlier) on your VB6 code, and then use Instant C# on the resulting VB (.NET) code. Reproducing the VB6 to VB upgrade as part of Instant C# would just add to the cost of our product and needlessly reproduce something the upgrade wizard already does quite well.
Q: How are methods with optional parameters converted?
By default, we convert to C# optional parameters (available since C# 4).
Q: How are classic VB Collections handled?
Instant C# inserts a helper class to simulate the behavior of the VB Collection class.
Q: How are classic VB string functions handled?
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).
Q: Are case statements with range expressions handled?
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.
Q: What are the most common adjustments necessary after conversion?
Copyright © 1997 - 2017 Tangible Software Solutions Inc.