カテゴリ: C# 更新日: 2026/01/23

C#のイベントとメソッドの関係を理解しよう!初心者向けにやさしく解説

C#のイベントとメソッドの関係を理解しよう
C#のイベントとメソッドの関係を理解しよう

先生と生徒の会話形式で理解しよう

生徒

「C#のイベントってよく聞くんですが、何のことなんですか?」

先生

「C#のイベントは、ある“できごと”が起きたときに、それに反応する“処理”を実行する仕組みです。」

生徒

「その“処理”ってメソッドのことですか?」

先生

「その通りです!イベントとメソッドは密接に関係しています。それでは、わかりやすく見ていきましょう。」

1. イベントとは何か?身近な例で理解しよう

1. イベントとは何か?身近な例で理解しよう
1. イベントとは何か?身近な例で理解しよう

「イベント」とは、何かが「起こったこと」を表します。たとえば、ボタンをクリックするキーを押すマウスを動かすなどがイベントの例です。

現実の世界でたとえるなら、「ドアベルを押すと音が鳴る」といった感じです。ここで「ドアベルを押す」がイベント、「音を鳴らす」がメソッド(処理)になります。

2. C#でのイベントの基本構造

2. C#でのイベントの基本構造
2. C#でのイベントの基本構造

イベントは「この出来事が起きたら、どのメソッドを呼び出すか?」をプログラムに伝える仕組みです。

まずはイベントを定義して、それに対して処理(メソッド)を登録します。以下は、イベントとメソッドの関係を示す簡単な例です。


using System;

class Program
{
    // イベントの宣言
    public static event Action OnStart;

    static void Main()
    {
        // イベントにメソッドを登録
        OnStart += StartMessage;

        // イベントを発生させる
        OnStart?.Invoke();
    }

    // イベントで呼び出されるメソッド
    static void StartMessage()
    {
        Console.WriteLine("イベントが発生しました!");
    }
}

このプログラムでは、OnStartというイベントが定義されており、StartMessageというメソッドがそのイベントに登録されています。イベントが発生すると、登録されたメソッドが呼ばれます。

3. メソッドとは?イベントに紐づく処理

3. メソッドとは?イベントに紐づく処理
3. メソッドとは?イベントに紐づく処理

メソッドとは、ある処理のまとまりのことです。たとえば「メッセージを表示する」「数値を計算する」といったことをする命令です。

イベントが「きっかけ」だとすると、メソッドは「それに対する動き」と言えます。C#では、イベントにどんなメソッドを登録するかは自由です。

4. イベントとメソッドの関係を図で理解しよう

4. イベントとメソッドの関係を図で理解しよう
4. イベントとメソッドの関係を図で理解しよう

以下のようなイメージを持つと、関係がわかりやすくなります:

  • �� イベント:「ボタンが押された!」
  • �� イベントが発生したときに呼び出されるメソッド:「画面に『こんにちは!』と表示する」

イベントに複数のメソッドを登録して、同時に複数の処理を実行させることも可能です。

5. メソッドを複数登録する例

5. メソッドを複数登録する例
5. メソッドを複数登録する例

同じイベントに、複数のメソッドを登録することもできます。たとえば、以下のようなコードです:


using System;

class Program
{
    public static event Action OnNotify;

    static void Main()
    {
        OnNotify += SayHello;
        OnNotify += SayGoodbye;

        OnNotify?.Invoke();
    }

    static void SayHello()
    {
        Console.WriteLine("こんにちは!");
    }

    static void SayGoodbye()
    {
        Console.WriteLine("さようなら!");
    }
}

この例では、OnNotifyイベントに2つのメソッドを登録しています。そしてイベントが発生すると、両方のメソッドが順番に呼び出されます。


こんにちは!
さようなら!

6. イベントはなぜ便利なの?

6. イベントはなぜ便利なの?
6. イベントはなぜ便利なの?

イベントを使うと、プログラムの中で「いつ何をするか」を分かりやすく分けることができます。特に、ユーザーが何か操作したときの処理(ユーザーインターフェース)や、時間が経過したときなどに反応的な動きをするプログラムでは、イベントはとても重要です。

たとえば、ゲームで「敵が出現したとき」「プレイヤーがダメージを受けたとき」などにイベントを使うことで、それぞれの状況に合わせたメソッドを呼び出すことができます。

7. 初心者が気をつけるポイント

7. 初心者が気をつけるポイント
7. 初心者が気をつけるポイント

イベントを使うときに初心者がよくつまずくのが、「イベントを発生させるには、自分でInvoke()を呼び出す必要がある」ことです。

また、イベントにメソッドを登録する前に、イベント自体がnull(登録なし)かどうかを確認するのも重要です。だからこそ、OnStart?.Invoke()のように?.(null条件演算子)を使います。

まとめ

まとめ
まとめ

C#のイベントとメソッドの関係について学んできた今回の記事では、「イベントとは何か」「どのようにメソッドと結びつけるのか」「複数の処理を同時に実行できる仕組み」など、プログラムの反応的な動きを作るための基礎を理解できました。イベントは、ユーザーの操作やシステム内部の変化に応じて処理を実行するための重要な仕組みであり、C#の中でもUI開発やゲーム開発、通知処理など多くの場面で活用されています。

実際にコードを見ながら学んだことで、イベントとメソッドの結びつき方や、Invoke()を使ってイベントを発生させる必要があること、nullチェックには?.演算子を使うべきことなど、実践的なポイントも身につけられたはずです。特に、ひとつのイベントに複数のメソッドを登録できる点は、柔軟で拡張性の高い設計につながります。

それでは最後に、もう一度イベントとメソッドの流れを簡潔にまとめたサンプルプログラムを紹介しましょう。これは、複数のメソッドをイベントに登録して、それぞれ異なる処理を実行する応用例です。


using System;

class EventSample
{
    public static event Action OnAction;

    static void Main()
    {
        // 複数のメソッドをイベントに登録
        OnAction += ShowStartMessage;
        OnAction += ShowDateTime;
        OnAction += ShowEndMessage;

        // イベントを発生させる
        OnAction?.Invoke();
    }

    static void ShowStartMessage()
    {
        Console.WriteLine("処理を開始します。");
    }

    static void ShowDateTime()
    {
        Console.WriteLine("現在の日時: " + DateTime.Now);
    }

    static void ShowEndMessage()
    {
        Console.WriteLine("処理が完了しました。");
    }
}

上記のように、イベントを活用することで、処理の順序や内容を整理しながら、柔軟なアプリケーション設計が可能になります。これからC#で本格的な開発に取り組むにあたっては、イベントの使い方をしっかりマスターしておくことが、大きな力になります。

ぜひ、自分のアプリケーションにもイベントとメソッドを組み合わせて活用し、よりわかりやすく、再利用性の高いコードを書けるようになりましょう。

先生と生徒の振り返り会話

生徒

「先生、イベントってすごく便利ですね!複数の処理をひとつにまとめられるなんて思いませんでした。」

先生

「そうですね。イベントを活用すると、プログラムの流れが見通しやすくなりますし、後から処理を追加するのも簡単です。」

生徒

「イベントが発生したときにどのメソッドが呼ばれるかも、ちゃんと理解できました!OnStart?.Invoke()の意味もスッキリしました。」

先生

「良い気づきですね。イベントとメソッドの連携は、ユーザー操作や通知処理の基礎になります。ぜひ練習を重ねてみてください。」

生徒

「はい!次はもっと複雑なイベント処理にも挑戦してみたいです!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

C#のイベントとは何ですか?初心者向けに簡単に教えてください。

C#のイベントとは、ある特定の「できごと」が起きたときに、あらかじめ登録しておいた処理を実行する仕組みです。たとえば「ボタンをクリックしたとき」に何かを表示したいといった場合に使われます。
カテゴリの一覧へ
新着記事
New1
C#
C#のデフォルト引数と名前付き引数の使い方を解説!初心者でも安心のやさしい入門
New2
C#
C#のオブジェクト初期化子を完全ガイド!初心者でもわかる便利な使い方
New3
COBOL
COBOLの帳票出力と編集を完全マスター!条件付き表示で分かりやすい書類を作る方法
New4
COBOL
COBOLの帳票出力を完全攻略!数値項目のカンマ・小数点編集例を徹底解説
人気記事
No.1
Java&Spring記事人気No1
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.2
Java&Spring記事人気No2
C#
C#でJSONファイルを読み書きする方法(JsonSerializer・Newtonsoft.Json)
No.3
Java&Spring記事人気No3
C#
C#でswitch式を使う方法!C# 8.0以降の新機能を解説
No.4
Java&Spring記事人気No4
C#
C#のLINQクエリ構文の書き方と基本操作をマスターしよう
No.5
Java&Spring記事人気No5
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#
C#のLINQ(リンク)とは?基本概念とデータ操作を初心者向けに徹底解説!
No.7
Java&Spring記事人気No7
C#
C#の非同期処理とUIスレッドをマスター!WPF/WinFormsでアプリが止まる問題を解決
No.8
Java&Spring記事人気No8
C#
C#のCancellationTokenを使ったキャンセル処理を完全ガイド!非同期処理を安全に止める方法