みなさんこんにちは🌚
貧乏生活で身も心も細っていくブルーノです。バイトやめたら一気にお金なくなりました(T . T)習慣付いた浪費グセってこわい😭
さて今回からはデリゲートについてまとめて行きたいと思います
デリゲートについて
デリゲート(delegate)は英語で委任するという意味です。プログラミングにおいてはデータ型とパラメータリストを指定したデリゲートを宣言することでメソッドを代行してもらうことができます。どういうことか、何に使えるのかちょっと見てみます
デリゲートはクラス外で宣言しておいて16行目のようにインスタンス化する際にメソッドの名前を入力することでデリゲート名でそのメソッドを呼び出すことができるようになるんですね。結果はShowメソッドが2回呼び出されていますね。これはたまたま呼び出されるメソッドと呼び出すクラスが同じでした。今度は別のクラスで呼び出してみましょう。
注目するのは20行目で、デリゲートにクラスとその中のメソッドへの参照を入れています。
マルチキャストデリゲーションについて
まずはこちらのコードを見てください。
24行目でBruno069クラス内の高らかな笑い声のメソッドをデリゲートに当てて次の行で呼び出しています。そして27行目で今度はアヒルの鳴き声のメソッドを同じインスタンスに入れて呼び出しています。これを見ると一つのデリゲートに委託できるメソッドは一つだけなのでしょうか。いえいえ、実は呼び出すメソッドを追加することができるのです。この24行目の後に
m += new MyDelegate(b.show2);
とすることで、このデリゲートを呼び出した際ネズミとアヒルの両方の鳴き声を聞くことができるのです。逆にこの後に
m -= new MyDelegate(b.show1);
とすればアヒルの鳴き声だけになります。このように呼び出すメソッドをいくつも増やしたりすることをマルチキャストデリゲーションと言います。声に出して言いたいですね!
デリゲートの基本を説明したところで今回は終わります。
冬の大会でこの二週間忙しかったあ〜〜🤯🤯🤯
久しぶりにこの記事書くと楽しいです😊
もう12月ですね。このブログも半年続いたお知らせが来ましたがのんびりペースすぎますね...
もっと頑張ろうっと