In C# a foreach variable can't be assignable, so to avoid a compilation error, the line must be commented. In VB.Net the iteration variable can be assigned so, this restriction is not applied.
Check the logic of the original VB6 function. In some cases the nothing assignation to the iteration variable is a way to stop the cycle. If this is the case use the break statement instead.For the given example, just remove the commented line and the EWI.
Public Function TestCommentedLines(ByVal P() As String) As Integer Dim S Dim Count As Integer For Each S In P If Not S IsNothing Then MsgBox(S) Count = Count + 1 S = Nothing End If Next S TestCommentedLines = Count End Function
public int TestCommentedLines( string[] P) { int Count = 0; foreach (string S in P) { if (S != null) { MessageBox.Show(S, Application.ProductName); Count++; //UPGRADE_NOTE: (2041) The following line was commented. //S = null; } } return Count; }
8834 N Capital of Texas Hwy, Ste 302
Austin, TX 78759
Call us: +1 (425) 609-8458
info@wearegap.com