Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Błąd kompilatora CS1922

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; }
}

Zobacz też