컴파일러 오류 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
}
}