Exportieren (0) Drucken
Alle erweitern
Erweitern Minimieren
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Compilerfehler CS1729

"Typ" enthält keinen Konstruktor, der "Anzahl" Argumente akzeptiert.

Dieser Fehler tritt auf, wenn Sie den Konstruktor einer Klasse direkt oder indirekt aufrufen und der Compiler keine Konstruktoren mit dieser Anzahl von Parametern finden kann. Im folgenden Beispiel verfügt die test-Klasse über keine Konstruktoren, die Argumente annehmen. Daher verfügt sie nur über einen Standardkonstruktor, der keine Argumente annimmt. Da die abgeleitete Klasse in der zweiten Zeile, in der der Fehler ausgelöst wird, keine eigenen Konstruktoren deklariert, stellt der Compiler einen Standardkonstruktor bereit. Dieser Konstruktor ruft in der Basisklasse einen parameterlosen Konstruktor auf. Da die Basisklasse über keinen solchen Konstruktor verfügt, wird der Fehler CS1729 ausgelöst.

So beheben Sie diesen Fehler

  1. Passen Sie die Anzahl der Parameter im Aufruf an den Konstruktor an.

  2. Ändern Sie die Klasse so, dass sie einen Konstruktor mit den Parametern, die aufgerufen werden müssen, bereitstellt.

  3. Stellen Sie in der Basisklasse einen parameterlosen Konstruktor bereit.

Im folgenden Beispiel wird der Fehler CS1729 ausgelöst:

// 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.
    }
}

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft