メソッドを表し、呼び出しまでクラスで行うには?(デリゲート) - TejimaTuyoshi/returnread GitHub Wiki
ホントに重要なのでしっかり細部まで見ること
デリゲートを使うにあたって、省略が多くなってくるのでしっかり勉強しよう!
じゃあ、「デリゲート」てなんぞや?
簡単に言えば「メソッドの型」である。
...全然わからん。
じゃあ、「int型」とかの違いは?
簡単に言えば[int型だったりは「データ型」(変数に値(データ)を入れられる)なのに対し、デリゲートは「変数にメソッドを入れられる」もの]。
・・・メソッドを「入れる」とはなんぞや?
publicなどのものをクラス必要なく定義することが可能にする。
つまり、「クラス内でそれぞれのメソッドを決められる」!
区別方法は以下の通り
・メソッドの戻り値の型
・メソッドの引数の型
・メソッドの引数の数
二つ目と三つ目は「順番まで一致する状態」でなければならない。
これら三つ「全て」一致しないと反応しないどころか「エラー」を吐いてしまうので正直まぁ難しい。
結局、こいつのある意味は?
オブジェクトの参照を減らすことができる。また、「呼ばれる側」から任意の関数を登録し、呼んでもらうことができる。結果的に処理を減らすことができる。
また、「event」というのを追加すると「+」のみできるようになる。(他のeventを追加できなくなる。)
禁止すること自体は少ないものの、実際知っておいた方が良い。
eventを「独自」に作っている場合があるので、その中身を見ることが大事になる!(見方はカーソルを合わせてF12)
ちなみに、これを「使わずに」作ることは可能であるものの、使用しなければ正直「キツイ」。(というか、多分進めない)
また、オブジェクトに「入れず」に使用するスクリプトにも使用することがあるが、
そういったものは「データを入れている」ものなので、
しっかりカプセル化する。(そういったものは分担しない方が良い)
便利系のほうがいいなら向いてない。「カッコイイ!」とか思う人に向いている。うん。自分でも何言ってるかわからん。