Compilerfehler CS1958
Aktualisiert: November 2007
Fehlermeldung
Objekt- und Auflistungsinitialisiererausdrücke dürfen nicht auf Delegaterstellungsausdrücke angewendet werden
Object and collection initializer expressions may not be applied to a delegate creation expression,
Da ein Delegat im Gegensatz zu Klassen oder Strukturen keine Member aufweist, gibt es für einen Objektinitialisierer nichts zu initialisieren. Dieser Fehler kann beispielsweise auftreten, wenn auf den Delegaterstellungsausdruck geschweifte Klammern folgen. Wenn Sie die geschweiften Klammern einfach entfernen, tritt dieser Fehler nicht mehr auf.
So beheben Sie diesen Fehler
- Entfernen Sie die geschweiften Klammern.
Beispiel
Durch den folgenden Code wird der Fehler CS1958 ausgelöst:
// 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>);
}
}