Compartir a través de


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