万年素人からHackerへの道

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

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    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