Page 1 of 1

Warum kann ich keinen abstrakten Konstruktor in einer abstrakten C# -Klasse erstellen?

Posted: 19 Aug 2025, 16:19
by Anonymous
Ich erstelle eine abstrakte Klasse. Ich möchte, dass jeder meiner abgeleiteten Klassen gezwungen wird, eine bestimmte Signatur des Konstruktors zu implementieren. Als solches habe ich das getan, was ich getan hätte, wenn ich sie zwingen wollte, eine Methode zu implementieren: Ich habe eine abstrakte gemacht. < /P>

Code: Select all

public abstract class A
{
abstract A(int a, int b);
}
< /code>
Ich erhalte jedoch eine Nachricht, in der der abstrakte Modifikator für dieses Element ungültig ist. Mein Ziel war es, einen solchen Code zu erzwingen. < /P>
public class B : A
{
public B(int a, int b) : base(a, b)
{
//Some other awesome code.
}
}
< /code>
Dies ist alles C# .NET -Code. Kann mir jemand helfen? Was ich am Ende gemacht habe, war Folgendes: < /p>
private A() { }

protected A(int a, int b)
{
//Code
}
Das tut das, was einige Leute sagen, Standard ist privat und die Klasse muss einen Konstruktor implementieren. Dies zwingt jedoch keinen Konstruktor mit der Signatur a (int a, int b) .

Code: Select all

public abstract class A
{
protected abstract A(int a, int b)
{

}
}
Update 2
Ich sollte klar sein, dass ich meinen Standardkonstruktor privat gemacht habe und meinen anderen Konstruktor geschützt bin. Ich suche nicht wirklich nach einer Möglichkeit, meinen Code funktionieren zu lassen. Ich habe mich darum gekümmert. Ich möchte verstehen, warum C# Sie dies nicht tun lässt.