Errore del compilatore CS1958

Aggiornamento: novembre 2007

Messaggio di errore

Le espressioni dell'inizializzatore di oggetto e di insieme non possono essere applicate a un'espressione di creazione del delegato.
Object and collection initializer expressions may not be applied to a delegate creation expression,

Un delegato non contiene membri come una classe o una struttura e pertanto l'inizializzatore di oggetto non deve eseguire alcuna operazione di inizializzazione. Se si verifica questo errore, è possibile che siano incluse parentesi graffe dopo l'espressione di creazione del delegato. Per risolvere il problema, è sufficiente rimuovere le parentesi graffe.

Per correggere l'errore

  • Rimuovere le parentesi graffe.

Esempio

Nel codice seguente viene generato l'errore 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>);
    }
}