質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

3回答

3187閲覧

MessageBox.Show(123);と使用したい

csuser01234

総合スコア38

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2017/12/26 05:33

編集2017/12/26 05:57

C# windowsフォームアプリです。

MessageBox.Showの通常使用方法は
MessageBox.Show("test");
とstring形式の引数で使用しますが、
MessageBox.Show(123);
と言うようにint型の引数を入れて、メッセージが出るような作りにする事は可能でしょうか?

ちなみにこの方法が出来なくて何か困っていると言う事ではなく、学習の為に知りたいと思っています。

MessageBox.Show(123.ToString()); 
や独自のクラスを作成して実現出来る事はわかっています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

MessageBox は継承できません。
継承出来ないので、Show メソッドのオーバーロードは作れませんし オーバーライドもできません。
インスタンスを作れないので拡張メソッドを作ってもつかえません。

投稿2017/12/26 08:36

hihijiji

総合スコア4150

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

継承することなくメソッドを増やすことはできません。
いや、VTable を書き換えて無茶をすればできなくはないのですが公式にはできませんしやってはいけません。

別の名前空間に MessageBox という名前のエージェントを作るなど提示されたコードを書けるようにする方法はいくつかありますがそれは目的にそぐわないと思います。

投稿2017/12/26 08:30

Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

MessageBox.Show(123**.ToString()**); じゃダメですか?

さもなくば

C#

1 public static class MyMessageBox { 2 public static void Show(object obj) { MessageBox.Show(obj.ToString()); } 3 }

を定義しておいて MyMessageBox.Show(123); くらいしか思いつかんです。

C#

1 public static class MyMessageBox { 2 public static void Show(this object obj) { MessageBox.Show(obj.ToString()); } 3 }

でもって 123.Show() とか(邪悪だけど)。

投稿2017/12/26 05:42

編集2017/12/26 06:08
episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

csuser01234

2017/12/26 05:47

その方法で出来るのはわかっています。 実現方法がわからないのではなく、知りたいのは既存の標準クラスに機能をoverrideさせる事が出来るかと言う事です。
episteme

2017/12/26 05:54

追記しました
csuser01234

2017/12/26 05:55

ありがとうございます。 ですがそのように独自のクラスを作って実現できる事もわかっています。質問内容に書いていなくてすみません。
episteme

2017/12/26 06:01

んー...static-methodでなければ拡張メソッドでやれそうなんだが...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問