컴파일러 오류 CS1951
업데이트: 2007년 11월
오류 메시지
식 트리 람다에는 out 또는 ref 매개 변수를 사용할 수 없습니다.
An expression tree lambda may not contain an out or ref parameter.
식 트리는 식을 데이터 구조로 나타내기만 합니다. 따라서 식 트리에는 매개 변수를 참조로 전달할 때 필요한 구체적인 메모리 위치를 나타낼 수 없습니다.
이 오류를 해결하려면
- 대리자 정의에서 ref 한정자를 제거하고 매개 변수를 값으로 전달하는 방법밖에 없습니다.
예제
다음 예제에서는 CS1951 오류가 발생하는 경우를 보여 줍니다.
// cs1951.cs
using System.Linq;
public delegate int TestDelegate(ref int i);
class Test
{
static void Main()
{
System.Linq.Expressions.Expression<TestDelegate> tree1 = (ref int x) => x; // CS1951
}
}