万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

C# Unity デフォルト引数とデリゲート

デフォルト引数(別名:省略可能な引数、オプション引数(optional parameter))を使って、 デリゲートすると変な現象。

まず、このようなデフォルト引数のあるメソッド

 void Hoge(int fooInt, bool barBool=false, int fugaInt=0)
    {
        Debug.LogError(fooInt);
        Debug.LogError(barBool);
        Debug.LogError(fugaInt);
    }

このようにデリゲートさせる。barBoolとfugaIntはデフォルト引数にお任せする!

 void CallBack(Action<int> callback)
    {
        callback(19);
    }

CallBack(Hoge);を呼ぶ。 しかし、ログは

19
False
0

が出ると思うが・・・

19
True
658336

になる。

stackoverflow.com

qiita.com