다음을 통해 공유


컴파일러 오류 CS1939

업데이트: 2007년 11월

오류 메시지

범위 변수 'name'을(를) out 또는 ref 매개 변수로 전달할 수 없습니다.
Cannot pass the range variable 'name' as an out or ref parameter.

범위 변수는 쿼리 식에 도입된 읽기 전용 변수이며 소스 시퀀스의 각 연속 요소에 대한 식별자로 사용됩니다. 이 변수는 어떤 방법으로도 수정할 수 없기 때문에 ref 또는 out으로 이 변수를 전달할 필요가 없습니다. 따라서 두 작업 모두 사용할 수 없습니다.

이 오류를 해결하려면

  • 범위 변수를 값으로 전달합니다.

예제

다음 예제에서는 CS1939 오류가 발생하는 경우를 보여 줍니다.

// cs1939.cs
using System.Linq;
class Test
{
    public static void F(ref int i)
    {
    }
    public static void Main()
    {
        var list = new int[] { 0, 1, 2, 3, 4, 5 };
        var q = from x in list
                let k = x
                select Test.F(ref x); // CS1939
    }
}