ただの適当な開発記

会社勤めしつつUnityでアプリ作ってる人の雑記

真偽値で2つのメソッドを呼び分ける

少しでもコードを短く書きたい人は下のようなコードを見た時どう思うのだろうか。

    public void PlayNext()
    {
        if (_isEndless)
        {
            PlayNextEndless();
        }
        else
        {
            PlayNextNormal();
        }
    }

どこかのstaticなクラスに以下のようなメソッドを書くと

 public static void CallByCondition(this bool condition, Action onTrue, Action onFalse)
    {
        if (condition)
        {
            if (onTrue != null) onTrue();
        }
        else
        {
            if(onFalse != null) onFalse();
        }
    }

もとのやつは以下の感じで表現できる

    public void PlayNext()
    {
        _isEndless.CallByCondition(PlayNextEndless,PlayNextNormal);
    }

こういう拡張に慣れると他のプロジェクトにジョインしたとき非常に困る。
かといって導入しようとすると多分嫌がられるという笑