Erreur du compilateur CS1958
Les expressions d’initialiseur d’objet et de collection ne peuvent pas être appliquées à une expression de création de délégué.
À la différence d’une classe ou d’un struct, un délégué n’a pas de membres. Un initialiseur d’objet n’a donc rien à initialiser. Si cette erreur se produit, il est fort possible que des accolades se trouvent après l’expression de création d’un délégué. Pour faire disparaître cette erreur, supprimez simplement les accolades.
- Supprimez les accolades.
Le code suivant génère l’erreur 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>);
}
}
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :