私のアプリケーションが 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[]
です。下に写真を添付しました。
さらに奇妙なのは、この動作をもう一度再現できなかったことです。
NB:今日、this.CreateGraphics();
私のコードは次のようなもので、似たようなことを経験しました:
var dc = this.CreateGraphics();//and some other stuff
その結果、4回再実行しようとしても描画に失敗し、コードに戻ってdcを明示的に定義しました.voilaは機能していました。その後、var に戻しましたが、まだ機能していました :/?
何が間違っている可能性がありますか?
編集:
順序の変更が機能することを発見しました。例えば:
for (int i = 0; i < strings.Length; words.Enqueue(strings[i]), i++);
エラーは発生しません。