- INDEX VB TO NET
- HOW TO MODIFY THE WAY THE CODE IS GENERATED
- AVOID SUBSTRING OUT OF BOUNDS
Avoid Substring Out of Bounds
VB6 Left & Right functions allowed the usage of out-of-bounds indexes, automatically replacing them with the actual lower/upper bound as required. Converting these methods directly to “Substring” invocations could cause the firing of out-of-bounds exceptions which were not triggered in VB6.
If this optional feature is enabled the Visual Basic Upgrade Companion will add Math.Max and Math.Min invocations to the resulting code in order to avoid out-of-bounds exceptions. This is a brief usage example:
Original VB6 Code:
Private Sub method1() Dim String1 As String String1 = "this is the string content" MsgBox Right(String1, 247) MsgBox Left(String1, 714) End Sub
Resulting VB.NET Code:
Private Sub method1() Dim String1 As String = "this is the string content" MessageBox.Show(String1.Substring(String1.Length - Math.Min(String1.Length, 247)), Application.ProductName) MessageBox.Show(String1.Substring(0, Math.Min(String1.Length, 714)), Application.ProductName) End Sub
Resulting C#.NET Code:
private void method1(){ string String1 = "this is the string content"; MessageBox.Show(String1.Substring(String1.Length - Math.Min(String1.Length, 247)), Application.ProductName); MessageBox.Show(String1.Substring(0, Math.Min(String1.Length, 714)), Application.ProductName); }