- ベストアンサー
C#で構造体配列
C#で構造体配列の操作練習?をしているのですが using System; using System.Collections.Generic; using System.Text; namespace test1 { public struct Data { public string name; // 名前 public uint value; // 値 } class read { Data[] human = new Data[300]; public static string idSearch() { for (int i = 0; i < 300; i++) { if (test1.read.human[i].value == 25) return test1.read.human[i].name; } } } } だと エラー CS0120: 静的でないフィールド、メソッド、またはプロパティ 'test1.read.human' で、オブジェクト参照が必要です。 と言うエラーが出るのですが、どうしてでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>read型のオブジェクトとはどういう意味ですか? 自分で定義しているreadクラスのインスタンスのこと >ついでにエラーにある「オブジェクト参照」ってのもいまいち分かりません read型のオブジェクトを生成していないから、参照するオブジェクトが必要ですと言われてる なんにも勉強しないでコード入力の練習をしても、時間と労力の無駄だし、あまりにも初歩的な質問をしても、回答してくれた人から呆れられて、相手にしてもらえなくなるだけだと思う。本やへ行って自分にあいそうなC#の入門書を買って、クラスとオブジェクトの関係を理解するとこから始めたらいいんじゃなかろうか?
その他の回答 (1)
- Tacosan
- ベストアンサー率23% (3656/15482)
human が static じゃないので, static メソッド idSearch からアクセスするためには read 型のオブジェクトが必要. ひょっとして static Data[] human = new Data[300]; としたかった?
補足
すいません、初心者なのであまりよくわからないのですが read型のオブジェクトとはどういう意味ですか? ついでにエラーにある「オブジェクト参照」ってのもいまいち分かりません できたら、そこのあたりを詳しく教えていただけませんか? あと、static Data[] human = new Data[300]; を使うと 'System.NullReferenceException' の初回例外が ids.exe で発生しました 'System.NullReferenceException' のハンドルされていない例外が ids.exe で発生しました。・・・ などのエラーがありました。
お礼
色々すいませんです。もうちょっと基礎からやり直すことにします。 本当にありがとうございました