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 nadal byłem ciekawy, dlaczego jest to błąd czasu kompilacji.
CS1628 : Nie można użyć w parametrze ref lub out „parametr” wewnątrz metody anonimowej, wyrażenia lambda lub wyrażenia 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();
}