Error del compilador CS1729

Actualización: noviembre 2007

Mensaje de error

'tipo' no contiene un constructor que tome argumentos 'número'.
'type' does not contain a constructor that takes 'number' arguments.

Este error se produce cuando se invoca directa o indirectamente el constructor de una clase pero el compilador no encuentra ningún constructor con el mismo número de parámetros. En el ejemplo siguiente, la clase test no tiene ningún constructor que tome argumentos. Por lo tanto, sólo tiene un constructor predeterminado que no toma ningún argumento. Dado que en la segunda línea en la que se genera el error la clase derivada no declara ningún constructor propio, el compilador proporciona un constructor predeterminado. Dicho constructor invoca un constructor sin parámetros en la clase base. Como la clase base no tiene ningún constructor de este tipo, se genera el error CS1729.

Para corregir este error

  1. Ajuste el número de parámetros en la llamada al constructor.

  2. Modifique la clase para proporcionar un constructor con los parámetros a los que debe llamar.

  3. Proporcione un constructor sin parámetros en la clase base.

Ejemplo

El ejemplo siguiente genera el error 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

Comentarios opcionales