Share via


컴파일러 오류 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("");
        };
    }
}