当我的应用程序现在触发 IndexOutOfRanage 异常时,我感到很震惊。我打开了Debugger Locals 窗格,发现我的整数越过了它的边界?基本上我的代码中有这样的东西:
string folder = Extender.GetSetting<string>("textFolder");
string mlink = folder + "\\" + filename + ".txt";
if(File.Exists(mlink))
{
string fContent = File.ReadAllText(mlink);
rtbLearnGuide.Text = fContent;
string[] strings = fContent.Split(' ');
for (int i = 0; i < strings.Length; i++, words.Enqueue(strings[i]));
}
这里的问题是我达到了 的长度strings[]
,我在下面附上了一张图片。
更奇怪的是,我第二次未能重现这种行为。
注意:我今天早些时候经历了类似的事情,this.CreateGraphics();
我的代码类似于:
var dc = this.CreateGraphics();//and some other stuff
结果是即使在尝试重新运行 4 次之后它也无法绘制它,然后我回到代码并明确定义 dc,瞧,它正在工作。然后我把它改回var,它还在工作:/?
可能有什么问题?
编辑:
我刚刚发现更改顺序有效。例如:
for (int i = 0; i < strings.Length; words.Enqueue(strings[i]), i++);
不会触发任何错误。