Auf meiner Formularladung habe ich diesen Code:
%Vor%Ich erhalte jedoch einen Fehler, der besagt, dass '' CycleEvent.CharityCyclists 'keinen Konstruktor enthält, der 0 Argumente enthält ", heißt es, dass der Fehler mit diesem Teil des Codes zu tun hat:
%Vor%Hier ist meine CharityCyclists-Klasse:
%Vor%Danke!
Das liegt daran, dass die Klasse CharityCyclists
keinen Konstruktor hat, der keine Argumente akzeptiert.
Der C # -Compiler generiert den Standardkonstruktor für Sie, wenn Sie keine anderen Konstruktoren definieren . Wenn Sie einen Konstruktor selbst definieren (wie Sie haben), generiert der C # -Compiler keinen Standardkonstruktor.
Wenn Sie CharityCyclists
ohne Parameter konstruieren möchten, fügen Sie diesen Code der Klasse hinzu:
Wenn Sie einen Konstruktor für Ihre Klasse zur Verfügung gestellt haben, der Argumente akzeptiert, erstellt der Compiler keinen leeren Konstruktor mehr.
Daher können Sie keinen leeren Konstruktor aufrufen, weil er nicht existiert. Sie müssten explizit den Konstruktor schreiben, der 0 Argumente in Ihrem Klassencode akzeptiert.
Wenn Sie einen Konstruktor erstellen, der keine 0 Argumente enthält, entfernen Sie automatisch den Standard Konstruktor . Sie sollten einen neuen Standardkonstruktor (ohne Argumente) erstellen, der das Problem beheben wird.
Wenn Sie keine Konstruktoren haben, erstellt C # implizit eine leere für Sie. Es ist funktional das gleiche wie Sie schreiben:
%Vor%Dies geschieht jedoch nur, wenn Sie no -Konstruktoren haben. Du hast einen, also passiert das nicht. Sie müssen explizit einen Konstruktor erstellen, der keine Parameter akzeptiert.
In .NET gibt es implizit einen args (parameterless) -Konstruktor, wenn keine anderen Konstruktoren deklariert wurden. Sobald Sie einen Konstruktor mit Parametern deklariert haben, müssen Sie auch explizit einen anderen Konstruktor ohne Parameter deklarieren, damit der Code mit dem Kompilieren fortfährt.
Sie versuchen, eine Instanz der CharityCyclists-Klasse "radfahrer1" ohne diese Instanzen zu instanziieren Argumente - das erfordert einen Konstruktor ohne Argumente.
Aber die Definition der CharityCyclists-Klasse hat nur einen Konstruktor mit 9 Argumenten. Da dieser Konstruktor 9 Argumente benötigt, wird cradist1 nicht mit diesem Konstruktor übereinstimmen. Sie benötigen einen Konstruktor, der keine Argumente wie folgt akzeptiert:
%Vor%Tags und Links c# arguments constructor