Share via


컴파일러 오류 CS1938

업데이트: 2007년 11월

오류 메시지

이름 'name'은(는) 'equals'의 오른쪽에 올 수 있는 범위에 속하지 않습니다. 'equals'의 양쪽에 있는 식을 서로 바꾸십시오.
The name 'name' is not in scope on the right side of 'equals'. Consider swapping the expressions on either side of 'equals'.

equals 키워드는 두 식이 같은지 확인하기 위해 join 절에서 사용되는 특수 연산자입니다. 소스 시퀀스 왼쪽의 범위 변수는 등호의 왼쪽에 있으며 소스 오른쪽의 범위 변수는 등호 왼쪽 범위에만 있습니다. 다음 코드 예제에서 IntelliSense를 사용하여 이를 확인할 수 있습니다.

이 오류를 해결하려면

  • 다음 예제의 주석 처리된 줄과 같이 두 범위 변수의 위치를 바꿉니다.

예제

다음 코드에서는 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 };
    }
}

참고 항목

참조

join 절(C# 참조)