Leggere in inglese

Condividi tramite


Errore del compilatore CS1958

Le espressioni dell'inizializzatore di oggetto e di inseieme non possono essere applicate a un'espressione di creazione del delegato.

A differenza di una classe o di uno struct, un delegato è privo di membri, per cui un inizializzatore di oggetto non ha nulla da inizializzare. Se si verifica questo errore, è probabile che siano presenti parentesi graffe dopo l'espressione di creazione del delegato. È sufficiente rimuovere le parentesi graffe per eliminare l'errore.

Per correggere l'errore

  1. Rimuovere le parentesi graffe.

Esempio

Il codice seguente genera l'errore CS1958:

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