Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8895

C# イベントハンドラの追加の書きかた変遷

$
0
0

いまさらだけども。

書き方#1

以前はこんな感じで書いていた(気がする)。

イベントハンドラの追加処理
class クラス
{
    メソッド
    {
        
        button1.Click += new EventHandler(button1_Click);
        
    }
}
イベントハンドラのメソッド記載
void button1_Click(object sender, EventArgs e)
{
    
}

書き方#2

new EventHandlerは省略できて、下記のように書ける。

イベントハンドラの追加処理
class クラス
{
    メソッド
    {
        
        button1.Click += button1_Click;
        
    }
}
イベントハンドラのメソッド記載
void button1_Click(object sender, EventArgs e)
{
    
}

書き方#3

ラムダ式で匿名メソッドとして書ける。かなり短くなった。
「処理内容」は、1行で書けないならメソッド化したほうが見やすい気がする。

イベントハンドラの追加処理
class クラス
{
    メソッド
    {
        
        button1.Click += (sender,e)=>{ 処理内容 };
        
    }
}

使いわけ

EventArgs(もしくはその派生クラス)の引数を使いたいときは書き方#2を使いたくなるところ。
同じ.csファイル内では、書き方#2か書き方#3で統一したい。

参考サイト

https://www.ipentec.com/document/csharp-add-event-handler-by-code
https://tnakamura.hatenablog.com/entry/20090309/1236549534


Viewing all articles
Browse latest Browse all 8895

Trending Articles