CS1939 de erro do compilador

Mensagem de erro

Não é possível passar o intervalo de variável 'nome' sistema autônomo ref ou out parâmetro.

Uma variável de intervalo é uma variável de somente leitura que é apresentada em uma expressão de consulta e serve sistema autônomo um identificador para cada elemento sucessivo em uma sequência de fonte.Porque ele não pode ser modificado de alguma forma, não há um ponto no passando por ref ou out. Portanto, as duas operações inválido são válidas.

Para corrigir este erro

  • Passe a variável de intervalo por valor.

Exemplo

O exemplo a seguir gera 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
    }
}