Compilerfehler CS1958

Objekt- und Auflistungsinitialisiererausdrücke dürfen nicht auf Delegaterstellungsausdrücke angewendet werden.

Ein Delegat besitzt anders als Klassen oder Strukturen keine Member, daher gibt es für einen Objektinitialisierer nichts zu initialisieren. Wenn dieser Fehler auftritt, liegt es wahrscheinlich daran, dass hinter dem Delegaterstellungsausdruck geschweifte Klammern folgen. Entfernen Sie einfach die geschweiften Klammern, damit dieser Fehler nicht mehr angezeigt wird.

So beheben Sie diesen Fehler

  1. Entfernen Sie die geschweiften Klammern.

Beispiel

Mit dem folgenden Code wird CS1958 generiert:

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