Je suis entrain de créer une classe abstraite. Je veux que chacune de mes classes dérivées pour être obligée de mettre en œuvre une signature spécifique du constructeur. En tant que tel, j'ai fait ce que j'aurais fait a je voulait les forcer à mettre en œuvre une méthode, j'ai fait un résumé.
public abstract class A
{
abstract A(int a, int b);
}
Cependant, je reçois un message disant que le modificateur abstract n'est pas valide sur ce point. Mon but était de forcer un code de ce genre.
public class B : A
{
public B(int a, int b) : base(a, b)
{
//Some other awesome code.
}
}
C'est tout le C# .NET code. Quelqu'un peut-il m'aider?
Mise à jour 1
Je voulais ajouter quelques choses. Ce que j'ai fini avec ça.
private A() { }
protected A(int a, int b)
{
//Code
}
Qui fait ce que certaines personnes disent, par défaut est privé, et la classe doit implémenter un constructeur. Cependant cela ne veut pas FORCER un constructeur avec la signature d'Un(int a, int b).
public abstract class A
{
protected abstract A(int a, int b)
{
}
}
Mise à jour 2
Je doit être clair, pour travailler autour de ce que j'ai fait mon constructeur par défaut privé, et mon autre constructeur protégé. Je ne suis pas vraiment à la recherche d'un moyen de rendre mon code du travail. J'ai pris soin de cela. Je cherche à comprendre pourquoi C# ne pas vous laisser faire cela.