CS1688 de erro do compilador

Mensagem de erro

Não é possível converter método anônimo bloco sem uma lista de parâmetro delegado tipo 'delegado' porque possui um ou mais parâmetros out

O compilador permite que os parâmetros que serão omitidos de um método anônimo bloquear na maioria dos casos.Este erro surge quando o bloco de métodos anônimo não tiver uma lista de parâmetros, mas o delegado tem um out parâmetro. O compilador não permite essa situação porque seria necessário ignorar a presença do out parâmetro, que é improvável que seja o comportamento correto.

Exemplo

O código a seguir gera erro CS1688.

// 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("");
        };
    }
}