Compilerfehler CS1729Compiler Error CS1729

„type“ enthält keinen Konstruktor, der „number“-Argumente akzeptiert.'type' does not contain a constructor that takes 'number' arguments.

Dieser Fehler tritt auf, wenn Sie den Konstruktor einer Klasse entweder direkt oder indirekt aufrufen, aber der Compiler keine Konstruktoren mit der gleichen Anzahl von Parametern finden kann.This error occurs when you either directly or indirectly invoke the constructor of a class but the compiler cannot find any constructors with the same number of parameters. Im folgenden Beispiel verfügt die test-Klasse über keine Konstruktoren, die Argumente akzeptieren.In the following example, the test class has no constructors that take any arguments. Sie verfügt daher nur über einen Standardkonstruktor, der Null-Argumente annimmt.It therefore has only a default constructor that takes zero arguments. Da die abgeleitete Klasse in der zweiten Zeile, in der der Fehler generiert wird, keine eigenen Konstruktoren deklariert, stellt der Compiler einen Standardkonstruktor bereit.Because in the second line in which the error is generated, the derived class declares no constructors of its own, the compiler provides a default constructor. Dieser Konstruktor ruft in der Basisklasse einen parameterlosen Konstruktor auf.That constructor invokes a parameterless constructor in the base class. Da die Basisklasse über keinen solchen Konstruktor verfügt, wird CS1729 generiert.Because the base class has no such constructor, CS1729 is generated.

So beheben Sie diesen FehlerTo correct this error

  1. Passen Sie die Anzahl der Parameter im Aufruf an den Konstruktor an.Adjust the number of parameters in the call to the constructor.

  2. Ändern Sie die Klasse, um mit den Parametern, die Sie aufrufen müssen, einen Konstruktor bereitzustellen.Modify the class to provide a constructor with the parameters you must call.

  3. Stellen Sie in der Basisklasse einen parameterlosen Konstruktor zur Verfügung.Provide a parameterless constructor in the base class.

BeispielExample

Im folgenden Beispiel wird CS1729 generiert:The following example generates CS1729:

// cs1729.cs  
class Test  
{  
    static int Main()  
    {  
        // Class Test has only a default 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.  
    }  
}  

Siehe auchSee Also

VererbungInheritance
KonstruktorenConstructors