.net column

.NET開発者のためのブログメディア
変数のイメージ

C#のdelegateを解説。基本構文やできることは?

2020年03月06日

C#のdelegateについて、できることや実際の例文を元に解説していきます。delegateはメソッドの処理において重要な役割を果たしてくれるので、ぜひ覚えておきましょう。

PG
C#のdelegateとは何をするためにあるのでしょうか?
PM
delegateはそもそも直訳すると「委任」「代表」という意味になります。その上でdelegateについて理解していきましょう。

C#のdelegateとは?

C#のdelegateは、ひとことでまとめると「メソッドを格納する変数の型」です。通常変数は文字列や数値といった一つの情報を格納しますが、delegate型を使って変数定義をするとメソッドを格納することができます。

厳密にはメソッドそのものを格納するのではなくメソッドの場所を格納しているのですが、delegateを使う上ではメソッドを格納しているという認識でも問題ないでしょう。また、delegateが持つことのできるメソッドは一つだけではなく、複数格納できることが特徴です。

delegateを使うと何ができるのか?

メソッドを格納するということは、その変数がメソッドであるかのように扱うことができます。

通常メソッドを呼び出すときはそのメソッド名を宣言して呼び出すでしょう。しかしdelegateは、delegate型の変数名を宣言することで、その変数に格納してあるメソッドを間接的に呼び出すことができるのです。

メソッド名でよいのではないかと思われるかもしれませんが、delegateのメリットは複数のメソッドを格納できるというところにあります。

例:
処理中にある条件1をクリアしたら処理の最後にメソッドAを呼び出す。
処理中さらに条件2もクリアしていたら処理の最後にメソッドBを呼び出す。

このような処理があったときに、条件をクリアしたら最後に呼び出したいメソッドをdelegate型の変数にまとめておき、最後にそのdelegate型の変数を呼び出せば処理したいメソッドをまとめて実行することが可能になります。

C#のdelegateの基本構文と実装例

それでは実際にdelegateを使ってみましょう。

delegateの基本構文

delegateを使用するにはまず、メソッドと同様に戻り値や引数を定義する必要があります。

===============
【delegateの基本構文】

===============

戻り値の型や引数は必要なければ記述しなくても大丈夫です。

delegateの実装例

実際にメソッドを格納し、呼び出してみましょう。

実行結果

PG
delegateの使い方がわかりました!
PL
delegateは複数のメソッド処理においてとても便利に使うことができます。ぜひマスターしておきましょう。

Delegateはメソッドを格納して処理を一任することができる変数

長い処理の中でいくつものフラグ用変数を用意しておくのは、コード量が増えて後々の改修作業も大変になってしまいます。
delegateはそんな問題を解決できる便利な変数型なので、これを機にコードに実装してみてはいかがでしょうか。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

求人一覧

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)