Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Messaggio di errore
Impossibile inizializzare il tipo 'tipo' con un inizializzatore di insieme perché non implementa System.Collections.IEnumerable.
Collection initializer requires its type 'type' to implement System.Collections.IEnumerable.
Per utilizzare un inizializzatore di insieme con un tipo, questo deve implementare IEnumerable. Questo errore può verificarsi se si utilizza accidentalmente la sintassi dell'inizializzatore di insieme quando si intende utilizzare un inizializzatore di oggetto.
Per correggere l'errore
Se il tipo non rappresenta un insieme, utilizzare la sintassi dell'inizializzatore di oggetto anziché la sintassi dell'inizializzatore di insieme.
Se il tipo rappresenta un insieme, modificarlo per implementare IEnumerable prima che sia possibile utilizzare inizializzatori di insieme per inizializzare oggetti di quel tipo.
Se il tipo rappresenta un insieme e non si ha accesso al codice sorgente, inizializzare solo gli elementi utilizzando i costruttori di classe o altri metodi di inizializzazione.
Esempio
Nel codice seguente viene riprodotto l'errore CS1922.
// cs1922.cs
public class Test
{
public static void Main()
{
// Collection initializer.
var tc = new TestClass {1,"hello"} ; // CS1922
// Object initalizer.
var tc2 = new TestClass { memberA = 1, memberB = "hello" }; // OK
}
}
public class TestClass
{
public int memberA { get; set; }
public string memberB { get; set; }
}
Vedere anche
Riferimenti
Inizializzatori di oggetto e di insieme (Guida per programmatori C#)