Прочитать на английском

Поделиться через


Ошибка компилятора CS1922

Для реализации интерфейса System.Collections.IEnumerable инициализатору коллекции требуется тип "тип".

Чтобы использовать инициализатор коллекции с типом, этот тип должен реализовывать интерфейс IEnumerable. Эта ошибка может возникать, если вместо синтаксиса инициализатора объекта вы случайно используете синтаксис инициализатора коллекции.

Исправление ошибки

  • Если тип не представляет коллекцию, то вместо синтаксиса инициализатора коллекции следует использовать синтаксис инициализатора объекта.

  • Если тип представляет коллекцию, измените его, чтобы он реализовал интерфейс IEnumerable , прежде чем использовать инициализаторы коллекции для инициализации объектов этого типа.

  • Если тип представляет коллекцию, но его исходный код недоступен, просто инициализируйте элементы этого типа с помощью конструкторов их класса или других методов инициализации.

Пример

Приведенный ниже код приводит к возникновению ошибки 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; }
}

См. также