我创建了一个小的测试类:
public delegate int Adder();
class Example {
static Adder CreateAdder() {
int x = 0;
return delegate {
x++;
return x;
};
}
public static void Test() {
Adder add = CreateAdder();
Console.WriteLine(add());
Console.WriteLine(add());
Console.WriteLine(add());
}
}
x是一个闭包变量。现在,我可以用反射器查看编译器生成的以下辅助类:
[CompilerGenerated]
private sealed class <>c__DisplayClass0_0 {
public int x;
internal int <CreateAdder>b__0() {
int x = this.x;
this.x = x + 1;
return this.x;
}
}
但我看不出来这个辅助类将如何在测试方法中使用。有没有可能展示一下使用辅助类的测试方法呢?
Test()
中正在发生什么。 - René Vogt