-2

コードを C# に変換しようとしていますが、理解できません。

For iItem = LBound(arrItems) To UBound(arrItems)
    If InStr(arrItems(iItem), strFieldName & "=") = 1 Then
        strFindField = Mid(arrItems(iItem), Len(strFieldName) + 2)
        Exit For
    End If
Next

if発言どうした?

4

2 に答える 2

1

そのツールはあまり慣用的なC#を生成していないようです。そのため、これを手動で翻訳して対比を提供します。

foreach (var item in arrItems)
{
   if(item.IndexOf(strFieldName + "=") == 0)
   {
      strFindField = item.Substring(strFieldName.Length + 2);
      break;
   }
}

これは、ここで行っていることを模倣しているはずですが、ループの意図を判断するのは少し難しいです。また、.Substring範囲外の数値を入力すると例外がスローされMid、空の文字列が返されることに注意してください。ただし、このループの戻り値がどのように使用されているかは明確ではないため、このセマンティックの変更を処理するための最も適切なオプションを言うのは困難です。

于 2012-11-05T18:14:19.137 に答える
0
for (iItem = Information.LBound(arrItems); iItem <= Information.UBound(arrItems); iItem++) {
    if (Strings.InStr(arrItems(iItem), strFieldName + "=") == 1) {
        strFindField = Strings.Mid(arrItems(iItem), Strings.Len(strFieldName) + 2);
        break; // TODO: might not be correct. Was : Exit For
    }
}

http://www.developerfusion.com/tools/convert/vb-to-csharp/

于 2012-11-05T17:57:32.200 に答える