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
- 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>);
}
}
Zusammenarbeit auf GitHub
Die Quelle für diesen Inhalt finden Sie auf GitHub, wo Sie auch Issues und Pull Requests erstellen und überprüfen können. Weitere Informationen finden Sie in unserem Leitfaden für Mitwirkende.