このメソッドに値「01200000131」を渡す:
private static int sumOddVals(string barcode)
{
int cumulativeVal = 0;
for (int i = 0; i < barcode.Length; i++)
{
if (i % 2 != 0)
{
MessageBox.Show(string.Format("i is {0}; barcode{0} is {1}", i, barcode[i]));
cumulativeVal += Convert.ToInt16(barcode[i]);
}
}
MessageBox.Show(string.Format("Odd total is {0}", cumulativeVal));
return cumulativeVal;
}
...「244」を返す
私はそれが「4」を返すことを期待しています。
最初のメッセージ ボックスには、"1"、次に "0" が 3 回表示され、次に "3" が表示され、"244" ではなく "4" になると予想されます。