質問: 1; のようにしようとすると、 「インスタンス参照でメンバー 'data.customer.no' にアクセスできません。代わりに型名を使用してください。」 となります。 どういう意味でしょう? また、どうすれば static public の配列を持てるでしょうか? (そもそもこういうやりかたはしない?) よろしくお願いします。
回答: 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 = ""; } と変えましょう。 ......でもこの修正をしてもコンパイル時じゃなくって実行時にエラーが出るんじゃないかなぁ?