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


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

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

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

"тип" не содержит конструктор, принимающий "число" аргумента(ов).
'type' does not contain a constructor that takes 'number' arguments.

Эта ошибка возникает при явном и неявном вызове конструктора класса, когда компилятору не удается найти какие-либо конструкторы с тем же числом параметров. В следующем примере класс test не содержит конструкторы, принимающие какие-либо аргументы. Таким образом, остается только конструктор по умолчанию, принимающий пустые аргументы. Так как во второй строке (где генерируется ошибка) производный класс не объявляет собственные конструкторы, компилятор предоставляет конструктор по умолчанию. Этот конструктор вызывает конструктор без параметров в базовом классе. Поскольку базовый класс не имеет такого конструктора, возникает ошибка CS1729.

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

  1. Измените число параметров в вызове конструктора.

  2. Измените класс, чтобы предоставить конструктор с параметрами, которые требуется вызвать.

  3. Предоставьте конструктор без параметров в базовом классе.

Пример

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

// cs1729.cs
class Test
{
    static int Main()
    {
        Test test = new Test(2); //CS1729
        return 1;
    }
}
public class Parent
{
    public Parent(int i) { }
}
public class Child : Parent { } // CS1729

Дополнительные комментарии