Lire en anglais

Partager via


Erreur du compilateur CS1938

Le nom 'name' n’est pas dans la portée à droite de 'equals'. Échangez les expressions de chaque côté de 'equals'.

Le mot clé equals est un opérateur spécial utilisé dans une clause join pour déterminer l’égalité entre deux expressions. La variable de portée pour la séquence source côté gauche est dans la portée à gauche du signe égal, et la variable de portée pour la source côté droite est uniquement dans la portée à gauche du signe égal. Pour vérifier ceci, testez IntelliSense dans l’exemple de code suivant.

Pour corriger cette erreur

  1. Permutez les deux variables de portée, comme indiqué dans la ligne commentée de l’exemple suivant :

Exemple

Le code suivant génère l’erreur CS1938 :

// cs1938.cs  
using System.Linq;  
class Test  
{  
    static void Main()  
    {  
        int[] sourceA = { 1, 2, 3, 4, 5 };  
        int[] sourceB = { 3, 4, 5, 6, 7 };  
  
        var query = from a in sourceA  
                    join b in sourceB on b equals a // CS1938  
                    // Try the following line instead.  
                    // join b in sourceB on a equals b  
                    select new { a, b };  
    }  
}  

Voir aussi