Я создаю абстрактный класс. Я хочу, чтобы каждый из моих производных классов был вынужден реализовать определенную подпись конструктора. Таким образом, я сделал то, что я сделал бы, если бы захотел заставить их реализовать метод, я сделал абстрактное.
public abstract class A
{
abstract A(int a, int b);
}
Однако я получаю сообщение о том, что абстрактный модификатор недействителен для этого элемента. Моя цель состояла в том, чтобы принудительно создать такой код.
public class B : A
{
public B(int a, int b) : base(a, b)
{
//Some other awesome code.
}
}
Это все код С#.NET. Может ли кто-нибудь помочь мне?
Обновление 1
Я хотел добавить некоторые вещи. То, что я закончил, было этим.
private A() { }
protected A(int a, int b)
{
//Code
}
Это то, что говорят некоторые люди, по умолчанию является приватным, а классу необходимо реализовать конструктор. Однако это не FORCE конструктор с сигнатурой A (int a, int b).
public abstract class A
{
protected abstract A(int a, int b)
{
}
}
Обновление 2
Мне должно быть ясно, чтобы обойти это, я сделал свой конструктор по умолчанию закрытым, а другой защитник. Я действительно не ищу способ заставить мой код работать. Я позаботился об этом. Я хочу понять, почему С# не позволяет вам это делать.