我有一個對象聲明:意外的結果
private string SourceProgram;
基本上我嘗試使用下面的代碼來解析一些東西:
private void LabelScan(System.IO.BinaryWriter OutputFile, bool IsLabelScan)
{
if (char.IsLetter(SourceProgram[CurrentNdx]))
{
if (IsLabelScan) LabelTable.Add(GetLabelName(), AsLength);
while (SourceProgram[CurrentNdx] != '\n')
CurrentNdx++;
CurrentNdx++;
return;
}
EatWhiteSpaces();
ReadMneumonic(OutputFile, IsLabelScan);
}
但是我在執行得到一個錯誤:
- SourceProgram[CurrentNdx]
'SourceProgram[CurrentNdx]' threw an exception of
type 'System.IndexOutOfRangeException' char {System.IndexOutOfRangeException}
- base {"Index was outside the bounds of the array."}
System.SystemException {System.IndexOutOfRangeException}
和CurrentNdx
值是46。
出了什麼問題。是字符串變量SourceProgram
的length < 46
?
如果是的話,如何解決這段代碼?
你在哪裏重置'CurrentNdx'?是的 - 該字符串似乎少於47個字符。 – BrokenGlass 2011-03-20 19:34:33
不應該問題「是字符串變量... <46?」是你應該能夠在調試器中看到的東西嗎? – 2011-03-20 19:35:51
@ Lasse V. Karlsen ::它不是顯而易見的。 @BrokenGlass ::我無法重置CurrentNdx,因爲即時通訊使用它讀入文件,它需要不斷增加。 – Sadique 2011-03-20 19:38:26