Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Inicjator kolekcji wymaga jego typu "type", aby zaimplementować element System.Collections.IEnumerable.
Aby można było użyć inicjatora kolekcji z typem, typ musi implementować IEnumerableelement . Ten błąd może wystąpić, jeśli przypadkowo użyto składni inicjatora kolekcji, gdy zamierzasz użyć inicjatora obiektów.
Aby poprawić ten błąd
Jeśli typ nie reprezentuje kolekcji, użyj składni inicjatora obiektów zamiast składni inicjatora kolekcji.
Jeśli typ reprezentuje kolekcję, zmodyfikuj ją w celu zaimplementowania
IEnumerable, zanim będzie można użyć inicjatorów kolekcji, aby zainicjować obiekty tego typu.Jeśli typ reprezentuje kolekcję i nie masz dostępu do kodu źródłowego, po prostu zainicjuj jego elementy przy użyciu konstruktorów klas lub innych metod inicjowania.
Przykład
Poniższy kod tworzy 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; }
}