メソッドを表し、呼び出しまでクラスで行うには?(デリゲート) - TejimaTuyoshi/returnread GitHub Wiki

ホントに重要なのでしっかり細部まで見ること

デリゲートを使うにあたって、省略が多くなってくるのでしっかり勉強しよう!

じゃあ、「デリゲート」てなんぞや?

簡単に言えば「メソッドの型」である。

...全然わからん。

じゃあ、「int型」とかの違いは?

簡単に言えば[int型だったりは「データ型」(変数に値(データ)を入れられる)なのに対し、デリゲートは「変数にメソッドを入れられる」もの]。

・・・メソッドを「入れる」とはなんぞや?

publicなどのものをクラス必要なく定義することが可能にする。

つまり、「クラス内でそれぞれのメソッドを決められる」!

区別方法は以下の通り

・メソッドの戻り値の型

・メソッドの引数の型

・メソッドの引数の数

二つ目と三つ目は「順番まで一致する状態」でなければならない。

これら三つ「全て」一致しないと反応しないどころか「エラー」を吐いてしまうので正直まぁ難しい。

結局、こいつのある意味は?

オブジェクトの参照を減らすことができる。また、「呼ばれる側」から任意の関数を登録し、呼んでもらうことができる。結果的に処理を減らすことができる。

また、「event」というのを追加すると「+」のみできるようになる。(他のeventを追加できなくなる。)

禁止すること自体は少ないものの、実際知っておいた方が良い。

eventを「独自」に作っている場合があるので、その中身を見ることが大事になる!(見方はカーソルを合わせてF12)

ちなみに、これを「使わずに」作ることは可能であるものの、使用しなければ正直「キツイ」。(というか、多分進めない)

また、オブジェクトに「入れず」に使用するスクリプトにも使用することがあるが、

そういったものは「データを入れている」ものなので、

しっかりカプセル化する。(そういったものは分担しない方が良い)

便利系のほうがいいなら向いてない。「カッコイイ!」とか思う人に向いている。うん。自分でも何言ってるかわからん。