...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

delegate型の宣言はなくせないのか

普段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ってどういう意味だろ.