普段D言語使ってると,C#でdelegateを使いたいときにわざわざデリゲート型を先に宣言する方法しか知らなくて面倒に感じる.
delegate void SimDelegate(); // これ void DoSim(SimDelegate dg) { before(); dg(); after(); } ... DoSim(() => sim.go()); ... DoSim(() => { bool flag = true; while(flag) flag = sim.go(); });
D言語ならこう書くかな.
void DoSim(void delegate() dg) { before(); dg(); after(); } ... DoSim({sim.go();}); ... DoSim({ bool flag = true; while(flag) flag = sim.go(); });
C#ではどう書いたら書かずにすむのだろう?
なんか前にD言語の本スレでも言われてた気がするけど,ラムダ式でおkってどういう意味だろ.