Erro do Compilador CS1729
'tipo' não contém um construtor que aceita 'número' argumentos.
Esse erro ocorre quando você invoca o construtor de uma classe direta ou indiretamente, mas o compilador não encontra nenhum construtor com o mesmo número de parâmetros. No exemplo a seguir, a classe test
não tem nenhum construtor que aceita argumentos. Portanto, ela tem apenas um construtor sem parâmetro que aceita zero argumentos. Como na segunda linha em que o erro é gerado a classe derivada não declara nenhum construtor próprio, o compilador fornece um construtor sem parâmetro. Esse construtor invoca um construtor sem parâmetros na classe base. Como a classe base não tem esse construtor, o erro CS1729 será gerado.
Para corrigir este erro
Ajuste o número de parâmetros na chamada ao construtor.
Modifique a classe para fornecer um construtor com os parâmetros que você deve chamar.
Forneça um construtor sem parâmetros na classe base.
Exemplo
O exemplo a seguir gera o erro CS1729:
// cs1729.cs
class Test
{
static int Main()
{
// Class Test has only a parameterless constructor, which takes no arguments.
Test test1 = new Test(2); // CS1729
// The following line resolves the error.
Test test2 = new Test();
// Class Parent has only one constructor, which takes two int parameters.
Parent exampleParent1 = new Parent(10); // CS1729
// The following line resolves the error.
Parent exampleParent2 = new Parent(10, 1);
return 1;
}
}
public class Parent
{
// The only constructor for this class has two parameters.
public Parent(int i, int j) { }
}
// The following declaration causes a compiler error because class Parent
// does not have a constructor that takes no arguments. The declaration of
// class Child2 shows how to resolve this error.
public class Child : Parent { } // CS1729
public class Child2 : Parent
{
// The constructor for Child2 has only one parameter. To access the
// constructor in Parent, and prevent this compiler error, you must provide
// a value for the second parameter of Parent. The following example provides 0.
public Child2(int k)
: base(k, 0)
{
// Add the body of the constructor here.
}
}
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de