Lezen in het Engels

Delen via


Compilerfout CS1938

De naam 'name' bevindt zich niet in het bereik aan de rechterkant van 'is gelijk aan'. Overweeg om de expressies aan beide zijden van 'is gelijk aan' te wisselen.

Het equals trefwoord is een speciale operator die wordt gebruikt in een join component om gelijkheid tussen twee expressies te bepalen. De bereikvariabele voor de bronreeks links bevindt zich in het bereik aan de linkerkant van gelijk aan en de bereikvariabele voor de bron aan de rechterkant bevindt zich alleen in het bereik aan de linkerkant van gelijk aan. U kunt dit controleren door te experimenteren met IntelliSense in het volgende codevoorbeeld.

Deze fout corrigeren

  1. Verwissel de positie van de twee bereikvariabelen, zoals wordt weergegeven in de opmerkingsregel in het volgende voorbeeld:

Opmerking

Met de volgende code wordt CS1938 gegenereerd:

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

Zie ook