画面上に、
名前を入力するTextBoxがひとつと、
顧客情報を入力するDataGridViewがひとつあり、
そのDataGridViewには、連番、名前、メールアドレスの3列, 20行のデータがあります。
この2つのコントロールから入力されたデータをDBに登録したり、
DBから読み込んだ値を表示しようとしています。
(ほかにもいろいろ処理するのですが。)
データを一時的に保持しておくクラスを作ろうと考え、
わざわざインスタンスを作るまでもないと思ったので、
staic public なメンバを使用して、
以下のようなクラスを作ってみました。
class Data {
public class Customer
{
static public int no = 0;
static public string name = "";
static public string mailAddr = "";
}
static public string name = "";
static public Customer[] customers = new Customer[20];
}
ところが、たとえば、
customers[0].no = 1;
のようにしようとすると、
「インスタンス参照でメンバー 'Data.Customer.no' にアクセスできません。代わりに型名を使用してください。」
となります。
どういう意味でしょう?
また、どうすれば static public の配列を持てるでしょうか?
(そもそもこういうやりかたはしない?)
よろしくお願いします。
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 = "";
}
と変えましょう。
……でもこの修正をしてもコンパイル時じゃなくって実行時にエラーが出るんじゃないかなぁ?
早速回答をいただきありがとうございます。
なるほど、わかりました。
static の意味がまだよく理解できていなかったということです。
参考になりました。
ところで、このプログラム方は、
回答をいただくまでの間に、このやりかたをやめて、普通のプロパティにしました。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- Java java final 1 2022/06/10 22:49
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java eclipse実行ができない 2 2022/07/27 04:47
このQ&Aを見た人はこんなQ&Aも見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
スマホに会話を聞かれているな!?と思ったことありますか?
スマートフォンで検索はしてないのに、友達と話していた製品の広告が直後に出てきたりすることってありませんか? こんな感じでスマホに会話を聞かれているかも!?と思ったエピソードってありますか?
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
「タイプ初期化子が例外をスローしました」エラー何?
Visual Basic(VBA)
-
「指定されたキャストは有効ではありません。」とエラーが出てしまいます。
Microsoft ASP
-
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
-
4
C#において、同じインスタンスを何度もnewしてよいでしょうか。
その他(プログラミング・Web制作)
-
5
別のフォームで記述している関数を実行するには?C#
C言語・C++・C#
-
6
visual studio でインデントを自動的に揃えるショートカットキー
その他(プログラミング・Web制作)
-
7
C#でbyte配列から画像を表示させたい
C言語・C++・C#
-
8
CloseとDisposeの違い
Visual Basic(VBA)
-
9
C#でButtonのフォーカス枠を消したいのですが
C言語・C++・C#
-
10
C# 超初心者です。 this.Refresh();という文を使いたいです
C言語・C++・C#
-
11
データグリッドビューの一番最初の行に列を追加したい
Visual Basic(VBA)
-
12
【C#】ハッシュテーブル(連想配列)の値が配列の場合について
C言語・C++・C#
-
13
C# インスタンスの破棄
その他(プログラミング・Web制作)
-
14
C# 配列の変数宣言について。
C言語・C++・C#
-
15
C#でフォームのオブジェクト名を変数名で指定
C言語・C++・C#
-
16
アクセスできない保護レベルエラーが発生します
Visual Basic(VBA)
-
17
C#のループでtextboxに値を入れる方法
C言語・C++・C#
-
18
ピクチャーボックスの大きさに合わせて画像を表示
Visual Basic(VBA)
-
19
C#にて別クラスの関数を使いたい
C言語・C++・C#
-
20
フルパスから最後のディレクトリ名を取得したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数名の付け方
-
C# のインスタンスの破棄
-
生成したインスタンスを削除す...
-
「インスタンス」の意味をわか...
-
複数の変数を宣言する時、同時...
-
抽象クラスのインスタンス生成...
-
C# インスタンスの破棄
-
private static という変数の修飾
-
C#において、同じインスタンス...
-
オブジェクト指向コンパイラの...
-
コンストラクタで設定した値が...
-
インスタンスを共有するには
-
C# 外部のDLLの名前空間取得方...
-
外部ライブラリの動的参照によ...
-
エクセルVBAで、条件に一致する...
-
ワイルドカード<?>と型パラメー...
-
「タイプ初期化子が例外をスロ...
-
DirectX、DrawPrimitive、D3DPT...
-
パワーポイントのVBAでテキスト...
-
エクリプス コンテンツアシスト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数名の付け方
-
private static という変数の修飾
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
オブジェクト参照がオブジェク...
-
生成したインスタンスを削除す...
-
変数の参照でエラーが出てしま...
-
C# インスタンスの破棄
-
C#において、同じインスタンス...
-
VB.NET getとsetの概念がわかり...
-
「インスタンス」の意味をわか...
-
フォームの存在をチェックする方法
-
C#「オブジェクト参照が必要で...
-
文字列を日付に変換でParseExce...
-
VB6.0で、DLLを動的に参照したい
-
vb.netでFAXを送信する方法
-
[Visual C#] 優先される処理に...
-
インスタンスを同じ名前で作成...
-
javaのクラスの作り方、エラー...
-
String a = "a"; と String b =...
おすすめ情報