Číst v angličtině

Sdílet prostřednictvím


Chyba kompilátoru CS1937

Název name není v oboru na levé straně "equals". Zvažte prohození výrazů na obou stranách "equals".

Klíčové equals slovo je speciální operátor, který se používá v join klauzuli k určení rovnosti mezi dvěma výrazy. Proměnná rozsahu pro sekvenci zdroje na levé straně je v oboru na levé straně rovná se a proměnná rozsahu pro pravý zdroj je pouze v oboru na levé straně rovná se. Můžete to ověřit experimentováním s IntelliSense v následujícím příkladu kódu.

Oprava této chyby

  1. Prohodí pozici dvou proměnných rozsahu, jak je znázorněno v komentáři v následujícím příkladu:

Příklad

Následující příklad vygeneruje CS1937.

// cs1937.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 // CS1937  
                    // Try the following line instead.  
                    //join b in sourceB on a equals b  
                    select new { a, b };  
    }  
}  

Levá strana se obecně nazývá "vnější" strana a vpravo se obecně nazývá "vnitřní" strana.

Viz také