07/08/23 03:58:23
匿名Inner Class いや Delegate だったかは、匿名Delageteの中で
参照するローカル変数を勝手に複製してしまうのにも関わらず、
C#はクロージャが使えると言っちゃう辺りが、
C#厨の知性の低さを示しているな。
static Function<int> makeCounter() {
int count = 0;
return delegate() { return ++count; }
}
Function<int> counter1 = makeCounter();
Function<int> counter2 = makeCounter();
Console.WriteLine(counter1()) // 1
Console.WriteLine(counter1()) // 2
Console.WriteLine(counter2()) // 1 => 3 になるように言語仕様変更して来い(笑