Что противоположно термину «закрыто»? - PullRequest
1 голос
/ 30 сентября 2010

Рассмотрим следующий (C #) код. Лямбда, передаваемая в ConvolutedRand (), называется «закрытой» над переменной с именем format. Какой термин вы бы использовали, чтобы описать, как переменная random используется в MyMethod ()?

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);
}

Ответы [ 2 ]

3 голосов
/ 30 сентября 2010

Я обычно слышу «связанный» и «свободный» в контексте определенного выражения или лексического контекста.Лямбда закрывается как на format, так и на random (которые «свободны» в лямбде, поэтому она закрывает их).Внутри MyMethod обе переменные являются локально связанными переменными.

1 голос
/ 30 сентября 2010

Это будет локальная переменная IMO.(Возможно, есть более научное название, not free, может быть?)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...