Error del compilador CS1958

Actualización: noviembre 2007

Mensaje de error

No se pueden aplicar expresiones de inicializador de objeto y colección a una expresión de creación de delegado
Object and collection initializer expressions may not be applied to a delegate creation expression,

Un delegado no tiene miembros como los tiene una clase o estructura, así que no hay nada que un inicializador de objeto pueda inicializar. Si encuentra este error, probablemente es porque hay llaves después de la expresión de creación de delegados. Simplemente quite las llaves y este error desaparecerá.

Para corregir este error

  • Quite las llaves.

Ejemplo

El código siguiente genera el error 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>);
    }
}