MessageBox.Show は1種類ではない
― オーバーロードを実例で理解する ―
WinFormsでエラーメッセージを表示するとき、まず学ぶのがこれです。
MessageBox.Show("税抜価格を正しく入力してください");
とてもシンプルです。
ですが実は、これは MessageBox.Show の1つの形 にすぎません。
目次
■ オーバーロードとは?
オーバーロードとは、
同じメソッド名で、引数の違うメソッドが複数存在すること
でしたね。
つまり、
Show(文字列)
Show(文字列, 文字列)
Show(文字列, 文字列, ボタン種類, アイコン種類)
のように、複数の「Show」が存在しているのです。
■ 例① タイトルを追加する
MessageBox.Show(
"税抜価格を正しく入力してください",
"入力エラー");
2つ目の引数は「タイトル」です。
表示がより分かりやすくなります。
■ 例② ボタンやアイコンを指定する
MessageBox.Show(
"税抜価格を正しく入力してください",
"入力エラー",
MessageBoxButtons.OK,
MessageBoxIcon.Warning);
ここで使われているのは enum型 です。
- MessageBoxButtons.OK
- MessageBoxIcon.Warning
このように、あらかじめ用意された選択肢から指定できます。
■ なぜ複数の形があるのか?
理由はシンプルです。
必要な機能のレベルが人によって違うから
- 簡単に表示したい人 → 1引数版
- タイトルも付けたい → 2引数版
- UIをきちんと作りたい → 4引数版
同じ名前で、用途に応じて使い分けられる。
これがオーバーロードの便利さです。
■ IntelliSenseで確認してみよう
MessageBox.Show( と入力してみてください。
Visual Studioには複数の候補が表示されるはずです。
これは、
.NETが最初からたくさんの「Show」を用意している
ということです。
■ 学習ポイント
今回の例で大事なのは:
- オーバーロードは特別な機能ではない
- .NETの標準APIでも普通に使われている
- 既に学んだ知識が実務でも使われている
という点です。
■ まとめ
MessageBox.Show("税抜価格を正しく入力してください");
これは完成形ではありません。
これは 数あるShowのうちの1つ です。
オーバーロードを理解すると、
「メソッドは1つとは限らない」
という視点が身につきます。
これがAPIを読む力につながります。
次にコードを書くとき、
「他の書き方はないか?」
と一度 IntelliSense を見てみましょう。
それが一段上のプログラミングです。
訪問数 17 回, 今日の訪問数 17回



ディスカッション
コメント一覧
まだ、コメントがありません