Partager via


Erreur du compilateur CS1939

Mise à jour : novembre 2007

Message d'erreur

Impossible de passer la variable de portée 'nom' en tant que paramètre de sortie (out) ou de référence (ref).
Cannot pass the range variable 'name' as an out or ref parameter.

Une variable de portée est une variable en lecture seule, introduite dans une expression de requête et servant d'identificateur pour les différents éléments d'une séquence source. Étant qu'elle n'est pas modifiable, il est inutile de la passer en tant que paramètre ref ou out. Ces deux opérations ne sont pas valides.

Pour corriger cette erreur

  • Passez la variable de portée en tant que valeur.

Exemple

L'exemple suivant génère l'erreur 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
    }
}