Ler em inglês

Compartilhar via


Erro do Compilador CS1688

Não é possível converter bloco de métodos anônimos sem uma lista de parâmetros de tipo delegado 'delegate' porque ele tem um ou mais parâmetros out

O compilador permite que os parâmetros sejam omitidos de um bloco de método anônimo na maioria dos casos. Esse erro ocorre quando o bloco de método anônimo não tem uma lista de parâmetros, mas o delegado tem um parâmetro out. O compilador não permite essa situação porque precisaria ignorar a presença do parâmetro out, o que é improvável que seja o comportamento correto.

Exemplo

O código a seguir gera o 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("");  
        };  
    }  
}