考虑以下(C#)代码。传递给ConvolutedRand()的lambda被称为“关闭”名为format的变量。您将用什么术语来描述如何在MyMethod()中使用变量random?
void MyMethod
{
int random;
string format = "The number {0} inside the lambda scope";
ConvolutedRand(x =>
{
Console.WriteLine(format, x);
random = x;
});
Console.WriteLine("The number is {0} outside the lambda scope", random);
}
void ConvolutedRand(Action<int> action)
{
int random = new Random.Next();
action(random);
}
答案 0 :(得分:3)
我通常在特定表达或词汇范围的上下文中听到“绑定”与“自由”。 lambda关闭了format
和random
(lambda中的'free',这就是为什么它关闭它们)。在MyMethod中,两个变量都只是局部绑定变量。
答案 1 :(得分:1)
那将是一个局部变量IMO。 (也许有一个更科学的名字,not free
也许?)