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


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

Обновлен: Ноябрь 2007

Сообщение об ошибке

Наиболее соответствующий методу 'method' перегруженный метод имеет неправильную сигнатуру для элемента инициализатора. Инициализируемым методом Add должен быть доступный метод экземпляра.
The best overloaded method match for 'method' has wrong signature for the initializer element. The initializable Add must be an accessible instance method.

Эта ошибка генерируется при попытке использовать инициализатор коллекции с классом, не содержащим открытый нестатический метод Add. Если метод Add является недоступным из-за уровня защиты (private, protected, internal), то будет получена ошибка CS0122, так что эта ошибка, скорее всего, означает, что метод определен как static.

Пример

Следующий пример проводит к генерированию ошибки CS1921:

// cs1921.cs
using System.Collections;
public class C : CollectionBase
{
    public static void Add(int i)
    {
    }
}
public class Test
{
    public static void Main()
    {
        var collection = new C { 1, 2, 3 }; // CS1921
    }
}

См. также

Ссылки

Инициализаторы объектов и коллекций (Руководство по программированию в C#)