3

これがVB.Netのコードです

If Not queryItems Is Nothing Then
                For Each qItem As String In queryItems
                    qItem = qItem.ToLower()
                Next
End If

そして、それはc#の「同等の」コードです(sharpdevelop/developerfusion/telerikのコンバーター/ VS 2012の「c#として貼り付け」メソッドを使用)

if (queryItems != null)
{
    foreach (string qItem in queryItems)
    {
        qItem = qItem.ToLower();
    }
}

C#コンパイラ(当然そうです)は次のように不平を言います

"Cannot assign to 'qItem' because it is a 'foreach iteration variable'"

この動作が VB.Net で許可されているのはなぜでしょうか?

4

2 に答える 2

1

ループ内で、(配列?リスト?)の各文字列を小文字に設定するのは完全に合理的です。

提案:古き良き「for()」ループを使用してください-

// Assuming array syntax...
if (queryItems != null)
{
    for (int i=0; i < queryItems.Length; i++)
    {
        queryItems[i] = queryItems[i].ToLower();
    }
}

私見では...

PS:VB.Netバージョンが実際に意図したとおりに機能したかどうかはわかりません。あなたは知っていますか?

于 2013-03-01T23:24:53.153 に答える