Ler em inglês

Partilhar via


Erro do compilador CS1688

Não é possível converter o bloco de método anônimo sem uma lista de parâmetros para delegar o tipo 'delegate' porque ele tem um ou mais parâmetros de saída

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

Exemplo

O código a seguir gera o erro CS1688.

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