Posiadam aplikację Windows Forms programu Visual Studio 2010, która zawiera klasę podstawową Form, którą dziedziczą inne klasy. Konstruktor klasy podstawowej przyjmuje parametr, który klasy potomne przechodzą do klasy bazowej.Jak uniknąć błędu "Konstruktor na typ" MyType "nie został znaleziony" podczas dziedziczenia klasy bazowej
Przykład:
public partial class BaseForm : Form
{
public BaseForm(int number)
{
InitializeComponent();
}
}
public partial class ChildForm : BaseForm
{
public ChildForm(int number)
: base(number)
{
InitializeComponent();
}
}
Problem, który używam do jest, gdy próbuję otworzyć ChildForm w trybie VisualStudio w widoku projektu pojawia się następujący błąd:
Constructor on type 'MyProject.BaseForm' not found.
Uwaga: niezależnie od błędu projekt kompiluje się i działa poprawnie.
Mogę uniknąć błędu, jeśli przeciążę konstruktora, który nie zawiera żadnych parametrów.
Przykład: (To pozbywa błędu)
public partial class BaseForm : Form
{
public BaseForm(int number)
{
InitializeComponent();
}
public BaseForm()
{
InitializeComponent();
}
}
public partial class ChildForm : BaseForm
{
public ChildForm(int number)
: base(number)
{
InitializeComponent();
}
}
Moje pytanie jest, w jaki sposób można utworzyć klasy bazowej, która nie zawiera konstruktora bez parametrów i uniknąć widoku projektu błąd?
Czy wymagany konstruktor instancji bez parametrów może być "prywatny"? –
@JeppeStigNielsen - Tak. Właśnie to zrobiłem i wszystko jest w porządku. – Jed
Upewnij się, że kompilujesz projekt, w którym znajduje się klasa podstawowa, jeśli jest ona inna niż klasa dziedziczona. –