• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:インスタンス参照でアクセスできない。代わりに型名?)

インスタンス参照でアクセスできない。代わりに型名?

このQ&Aのポイント
  • インスタンス参照でメンバー 'Data.Customer.no' にアクセスできません。代わりに型名を使用してください。
  • static public の配列を持つためには、クラスのメンバとして宣言する必要があります。
  • Dataクラスは一時的にデータを保持するためのクラスであり、インスタンスを作る必要はありません。

質問者が選んだベストアンサー

  • ベストアンサー
  • hitomura
  • ベストアンサー率48% (325/664)
回答No.1

   public class Customer    {     static public int no = 0;     static public string name = "";     static public string mailAddr = "";    } と書いたとき、no 等が定義されるのはそのインスタンス(new 等で生成したモノ)ではなくクラスそのものになります。一方、customers 自体はともかくcustomers[0] に入っているモノはインスタンスです。 したがって、そのインスタンスで定義されていない no へのアクセスはできません。 Customer の定義を    public class Customer    {     public int no = 0;     public string name = "";     public string mailAddr = "";    } と変えましょう。 ……でもこの修正をしてもコンパイル時じゃなくって実行時にエラーが出るんじゃないかなぁ?

ogu-ne
質問者

お礼

早速回答をいただきありがとうございます。 なるほど、わかりました。 static の意味がまだよく理解できていなかったということです。 参考になりました。 ところで、このプログラム方は、 回答をいただくまでの間に、このやりかたをやめて、普通のプロパティにしました。 どうもありがとうございました。

関連するQ&A