マルチキャストデリゲート

デリゲートには、複数のメソッドを登録できる・・・。
これをマルチキャストデリゲートという・・・。

デリゲートの追加は、

<デリゲート変数> += new <デリゲート名>(<実行するメソッド>)

+演算子や+=演算子を使える・・・。
逆に削除は、

<デリゲート変数> -= <削除対象のみのデリゲート変数>

-演算子や-=演算子を使ったりする・・・。

bracketsにBrackets1を呼ぶデリゲートを登録したら、+=でBrackets2を呼ぶデリゲートを追加登録する・・・。

呼び出しは1回だけ・・・。

で、複数のデリゲートが登録されている場合、呼び出しはすべて行われるが、戻り値の結果は一番最後のものが返される・・・。
なので、

Brackets1、Brackets2、どちらも括弧を付けたあとの文字列をいったん出力している・・・。
そのあと、戻り値として返す・・・。

innerStr = (ABCDE)
innerStr = <ABCDE>
str = <ABCDE>

このように、Brackets1、Brackets2、どちらも呼ばれているが、最終的な戻り値strは後に登録したBrackets2のものになっている・・・。

Sample/cs/MulticastDelegate/MulticastDelegate/src/MulticastDelegate at master · bg1bgst333/Sample · GitHub