Perché non puoi usare un parametro ref o out in un'espressione lambda?
Oggi ho riscontrato l'errore e ho trovato una soluzione alternativa, ma ero ancora curioso di sapere perché si tratta di un errore di compilazione.
CS1628 : Impossibile utilizzare nel parametro ref o out 'parametro' all'interno di un metodo anonimo, espressione lambda o espressione di query
Ecco un semplice esempio:
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();
}