Ler em inglês

Partilhar via


Erro do compilador CS1958

As expressões do inicializador de objeto e coleção não podem ser aplicadas a uma expressão de criação delegada.

Um delegado não tem membros como uma classe ou struct tem, e, portanto, não há nada para um inicializador de objeto inicializar. Se você encontrar esse erro, provavelmente é porque há chaves após a expressão de criação de delegado. Basta remover as chaves e este erro desaparecerá.

Para corrigir este erro

  1. Retire os aparelhos.

Exemplo

O código a seguir produz CS1958:

// cs1958.cs  
public class MemberInitializerTest  
{
    delegate void D<T>();  
    public static void GenericMethod<T>() { }  
    public static void Run()  
    {  
        D<int> genD = new D<int>(GenericMethod<int>) { }; // CS1958  
       // Try the following line instead  
      // D<int> genD = new D<int>(GenericMethod<int>);  
    }  
}