CS1958 de erro do compilador

Mensagem de erro

Expressões de inicializador de objeto e a 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 não existem chaves depois da expressão de criação de delegado.Remover apenas as chaves e esse erro desaparecerá.

Para corrigir este erro

  • Remova as chaves.

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>);
    }
}