delegate void MyDele();
static Dictionary<int, MyDele> GetMethodMap() { var map = new Dictionary<int, MyDele>();
//呼び出したい関数をビット演算で取り出すためキーをビットずつ増分させる。 map[1] = fn1; map[2] = fn2; map[4] = fn3; map[8] = fn4; map[16] = fn5; map[32] = fn6;
return map; }
static void fn1() { System.Console.WriteLine("処理1"); }
static void fn2() { System.Console.WriteLine("処理2"); }
static void fn3() { System.Console.WriteLine("処理3"); }
static void fn4() { System.Console.WriteLine("処理4"); }
static void fn5() { System.Console.WriteLine("処理5"); }
static void fn6() { System.Console.WriteLine("処理6"); }
static void GoMethod() { var wk3 = from p in GetMethodMap() orderby p.Key descending //逆順にしてみる where (p.Key | 44) == 44 //4+8+32(メソッド:3,4,6) select p.Value; foreach(MyDele t in wk3) { t(); } }
|