VB.NET and String Concatenation Weirdness
Creating strings inside loops in VB.NET can cause subtle and easy-to-miss bugs. Here’s a simple example:
Sub Main()
For i As Integer = 1 To 4 Step 1
Dim text As String
text = text & i.ToString
Console.WriteLine(text)
Next
Console.ReadLine()
End SubAs we are creating the textvariable inside the for loop, one would presume that this would ouput:
1
2
3
4
Instead, when run, we get this:
Check the compiler warnings and you’ll see:
Variable 'text' is used before it has been assigned a value. A null reference exception could result at runtime.
The problem can be easily fixed by assigning an empty value to text when it is declared:
Still, this can cause interesting issues if you don’t play close attention to compiler warnings.

