しらとりのブログ

社会人ひよこプログラマのtil

switch文を消す黒魔術

ラムダ式勉強中に錬成されてしまったもの。

var commandDict = new Dictionary<object, Action>()
{
    // コマンドID,           コマンド
    { CommandId.hoge,   ()=> hogehoge() },
    { CommandId.fuga,   ()=> fugafuga() },
    { CommandId.piyo,   ()=> piyopiyo() }
}

showCommandDict[CommandId]();

関数呼び出しの部分が匿名関数であれば許される......? ポリモーフィズムはしないけど大きくなりそうなswitchに使うと良いかもしれない。