Share via


컴파일러 오류 CS1937

업데이트: 2007년 11월

오류 메시지

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

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

이 오류를 해결하려면

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

예제

다음 예제에서는 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 };
    }
}

일반적으로 왼쪽은 "외부" 측면이라고 하며 오른쪽은 "내부" 측면이라고 합니다.

참고 항목

참조

join 절(C# 참조)