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

Ein Treffpunkt für C#-Programmierer
Anonymous
 Warum kann ich keinen abstrakten Konstruktor in einer abstrakten C# -Klasse erstellen?

Post 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.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post