- - PR -
C# インデックスが配列の境界外です
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-11-23 07:44
エラーが出る部分だけ取り出してコンソールでデバッグしてもエラーはでません。
エラーが出るのは毎回じゃなく、5回に1回ぐらいです。
このforで囲んだ配列のラインがエラーですとなります。 | ||||||||||||
|
投稿日時: 2005-11-23 09:08
例外が出た時の、 sortp.Length, player.Length, ti.Length の値を確認してみてください。
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2005-11-23 09:22
_________________ | ||||||||||||
|
投稿日時: 2005-11-23 16:02
ありがとうございました。エラーでなくなりました。例外を見ろとのことで、見てみたらOnPaintとありまして、よく考えてみたら、OnPaintの中でSortPlayer();とやっていたです。これはおかしい(かな?やっちゃだめ?)ですよね。コンストラクタで呼び出したら、エラーでなくなりました。
at musasi.Ranking.OnPaint(PaintEventArgs pea) in c:\vc#.net\musasi\musasi\ranking.cs:line 787 at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer, Boolean disposeEventArgs) at System.Windows.Forms.Control.WmPaint(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ScrollableControl.WndProc(Message& m) at System.Windows.Forms.ContainerControl.WndProc(Message& m) at System.Windows.Forms.Form.WndProc(Message& m) at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) | ||||||||||||
|
投稿日時: 2005-11-23 16:38
はい? 例外が出たときの、それぞれの値を確認しろ、ってことじゃないですか?
この辺は無視ですか? OnPaint でソートするのがいいのか悪いのか、それは仕様やデータ構造も含めて考えないと、わかりません。 問題は、「この例外はどういうときに発生するのか」ということを理解しないまま、たまたまよかった変更で先に進むことです。 OutOfRange は、配列が10個宣言されているのに、11個目にアクセスしようとするなど、宣言した範囲を超えているときに発生します。ということは、何らかの条件で "i" や "ti[i]" が、配列 "sortp"、"player"、"ti" に宣言している個数を超えているわけです。 なぜ超えるような状況が発生したのか、それを突き詰めて、どうでなければならないのか、考える必要があります。 ___________________________________________________________________ □ written by Jitta on 2005/11/23 □ Microsoft MVP :Visual Developer ASP/ASP.NET Oct.2005-Sept.2006 _________________ | ||||||||||||
|
投稿日時: 2005-11-23 17:49
Jittaさんのソースiがforのスコープと違うんでコンパイルできませんでした。
じゃんぬねっとさんのソースでやりましたが、うまくいかないで、いつもと同じように例外がでるウィンドウがでてきました。 | ||||||||||||
|
投稿日時: 2005-11-23 18:08
例外処理と配列について本読んだほうがいいかも。
> Jittaさんのソースiがforのスコープと違うんでコンパイルできませんでした。 じゃぁiの宣言を最初でやったらよくないっすか? | ||||||||||||
|
投稿日時: 2005-11-23 18:12
じゃんぬさんのソースでできました。全部4でした。
|
1|2|3
次のページへ»