Compilerfehler CS1938
Aktualisiert: November 2007
Fehlermeldung
Der Name "Name" ist auf der rechten Seite von "equals" nicht im Bereich. Vertauschen Sie die Ausdrücke auf beiden Seiten von "equals".
The name 'name' is not in scope on the right side of 'equals'. Consider swapping the expressions on either side of 'equals'.
Das equals-Schlüsselwort ist ein spezieller Operator, der in einer join-Klausel zur Ermittlung der Gleichheit zwischen zwei Ausdrücken verwendet wird. Die Bereichsvariable für die linksseitige Quellsequenz ist im Bereich auf der linken Seite von equals, und die Bereichsvariable für die rechtsseitige Quelle ist nur im Bereich auf der linken Seite von equals. Sie können dies überprüfen, indem Sie im folgenden Codebeispiel mit IntelliSense experimentieren.
So beheben Sie diesen Fehler
- Wechseln Sie die Position der beiden Bereichsvariablen wie in der kommentierten Zeile im folgenden Beispiel gezeigt:
Beispiel
Durch den folgenden Code wird der Fehler CS1938 ausgelöst:
// 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 };
}
}