質問: C#を勉強しています。 イベントの引数senderとeの意味を教えてください。 それぞれ何のデータが入ってくるんでしょうか? どういう使い方をするんでしょうか? 本を読んでても書いていることがなくて質問しました。 できるだけ初心者にわかりやすくお願いします。 申し訳ございません。 よろしくお願いいたします。
回答: sender はイベントを送信したオブジェクトです。 イベントハンドラ自体は Form のメソッドなので、this は Form を指します。そうすると、イベントを送信したのがどのボタンなのかどのテキストボックスなのかわからないので sender で区別します。 e はそのイベントに関わる引数です。クリックイベントなどには無関係なので無視してください。 例えば選択イベントでは、どの項目が選択されたのかを伝えるために使われます。 どのように使われるかはイベントによって様々なので、リファレンスを参照してください。 追記 == 例えば電卓を作る時など、同じような働きをするボタンがいくつもある場合、すべてのボタンに一つ一つイベントハンドラを作っていたのでは面倒です。 そんな時には、すべてのボタンに共通したイベントハンドラを作ります。 試しに次のようなメソッドをフォームに追加してください。 ``` private void button_Click(object sender, EventArgs e) { if (!(sender is Button button)) return; MessageBox.Show(button.Text); } ``` そしてフォームにボタンをいくつか貼り付け、すべてのボタンの Click イベントとしてこのメソッドを割り当ててください。 実行してボタンを押すと、どのボタンを押しても押されたボタンの Text プロパティを表示します。 電卓ではこれを利用し、入力された数字をボタンの Text プロパティから得ることができます。 追記 == 上記コードの次の部分 ``` if (!(sender is Button button)) return; ``` これは古いバージョンの場合、コンパイルエラーになるかもしれません。 その場合は次のように置き換えてください。 ``` var button = sender as Button; if (button == null) return; ```