Erreur du compilateur CS1922
Impossible d’initialiser un type 'type' avec un initialiseur de collection, car il n’implémente pas 'System.Collections.IEnumerable'
Pour utiliser un initialiseur de collection avec un type, le type doit implémenter IEnumerable
. Cette erreur peut se produire si vous utilisez une syntaxe d’initialiseur de collection alors que vous voulez utiliser un initialiseur d’objet.
Si le type ne représente pas une collection, utilisez la syntaxe d’initialisation d’objet au lieu de la syntaxe d’initialiseur de collection.
Si le type ne représente pas une collection, modifiez-le pour qu’il implémente
IEnumerable
. Vous pourrez ensuite utiliser des initialiseurs de collection pour initialiser les objets de ce type.Si le type représente une collection et si vous n’avez pas accès au code source, initialisez ses éléments à l’aide de leurs constructeurs de classe ou d’autres méthodes d’initialisation.
Le code suivant génère l’erreur CS1922 :
// cs1922.cs
public class Test
{
public static void Main()
{
// Collection initializer.
var tc = new TestClass {1,"hello"} ; // CS1922
// Object initializer.
var tc2 = new TestClass { memberA = 1, memberB = "hello" }; // OK
}
}
public class TestClass
{
public int memberA { get; set; }
public string memberB { get; set; }
}
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :