Lire en anglais

Partager via


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.

Pour corriger cette erreur

  1. Supprimez les accolades.

Exemple

Le code suivant génère l’erreur 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>);  
    }  
}