Nie można użyć parametru ref lub out w wyrażeniach lambda

Dlaczego nie możesz użyć parametru ref lub out w wyrażeniu lambda?

Natknąłem się dzisiaj na błąd i znalazłem obejście, ale wciąż byłem ciekawy, dlaczego jest to błąd podczas kompilacji.

CS1628: Nie można użyć parametru ref lub out parametru „parametr” w anonimowej metodzie, wyrażeniu lambda lub wyrażeniu zapytania

Oto prosty przykład:

private void Foo()
{
    int value;
    Bar(out value);
}

private void Bar(out int value)
{
    value = 3;
    int[] array = { 1, 2, 3, 4, 5 };
    int newValue = array.Where(a => a == value).First();
}

questionAnswers(4)

yourAnswerToTheQuestion