Lezen in het Engels

Delen via


Compilerfout CS1922

Voor de initialisatiefunctie van de verzameling is het type 'type' vereist om System.Collections.IEnumerable te implementeren.

Als u een initialisatiefunctie voor verzamelingen met een type wilt gebruiken, moet het type worden geïmplementeerd IEnumerable. Deze fout kan optreden als u per ongeluk de syntaxis van de initialisatiefunctie voor verzamelingen gebruikt wanneer u een object-initializer wilt gebruiken.

Deze fout corrigeren

  • Als het type geen verzameling vertegenwoordigt, gebruikt u de syntaxis van de object-initialisatiefunctie in plaats van de syntaxis van de initialisatiefunctie voor verzamelingen.

  • Als het type wel een verzameling vertegenwoordigt, wijzigt u deze om te implementeren IEnumerable voordat u initialisatiefunctie voor verzamelingen kunt gebruiken om objecten van dat type te initialiseren.

  • Als het type een verzameling vertegenwoordigt en u geen toegang hebt tot de broncode, initialiseert u de elementen met behulp van hun klasseconstructors of andere initialisatiemethoden.

Opmerking

De volgende code produceert 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; }
}

Zie ook