Error del compilador CS1939
Actualización: noviembre 2007
Mensaje de error
No se puede pasar la variable de rango 'nombre' como parámetro out o ref.
Cannot pass the range variable 'name' as an out or ref parameter.
Una variable de rango es una variable de sólo lectura que se incluye en una expresión de consulta y que actúa como identificador de cada elemento sucesivo en una secuencia de origen. Debido a que no se puede modificar de ninguna forma, no existe razón para pasarla por ref o out. Por consiguiente, no es válida ninguna de las dos operaciones.
Para corregir este error
- Pase la variable de rango por valor.
Ejemplo
El ejemplo siguiente genera el error CS1939:
// cs1939.cs
using System.Linq;
class Test
{
public static void F(ref int i)
{
}
public static void Main()
{
var list = new int[] { 0, 1, 2, 3, 4, 5 };
var q = from x in list
let k = x
select Test.F(ref x); // CS1939
}
}