컴파일러 오류 CS1688
업데이트: 2007년 11월
오류 메시지
'delegate' 대리자 형식에 out 매개 변수가 하나 이상 있으므로 매개 변수 목록이 없는 무명 메서드 블록을 이 대리자 형식으로 변환할 수 없습니다.
Cannot convert anonymous method block without a parameter list to delegate type 'delegate' because it has one or more out parameters
대부분의 경우 무명 메서드 블록에서 매개 변수를 생략해도 컴파일러에서 문제를 제기하지 않습니다. 이 오류는 무명 메서드 블록에 매개 변수 목록이 없으나 대리자에 out 매개 변수가 있는 경우에 발생합니다. 이 경우 문제가 생기지 않으려면 컴파일러가 out 매개 변수를 무시해야 하지만 이는 올바른 동작이 아니므로 컴파일러에서는 이러한 상황을 허용하지 않습니다.
예제
다음 코드에서는 CS1682 오류가 발생하는 경우를 보여 줍니다.
// CS1688.cs
using System;
delegate void OutParam(out int i);
class ErrorCS1676
{
static void Main()
{
OutParam o;
o = delegate // CS1688
// Try this instead:
// o = delegate(out int i)
{
Console.WriteLine("");
};
}
}