У меня есть объект, объявленный как:
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
?
Если да, как исправить этот код?