Hallo,
Ich komme ursprünglich von Java.
Was ich bei C# in Verbindung mit den WindowsForms nicht ganz verstehe ist folgendes:
Jede Form, welche man mit VS erstellt, erbt ja (automatisch) von der Form-Klasse.
Was ist aber nun, wenn ich in einem C#-Projekt bei der View folgende Ableitungshierarchie der View-Klassen haben will:
- Ich habe 2 Form-Klassen: Form1 und Form2
- Form2 erbt von Form1
Das wäre doch so garnicht möglich, da ja automatisch bereits jede erstelle Form von von der Form-Klasse erbt und bekanntlich eine Klasse nur von maximal 1 Klasse erben kann (es gibt also keine Mehrfachvererbung).
In Java wäre obiges Beispiel problemlos möglich, da dort eben meine "GUI-Klassen" nicht bereits von beginn auf von irgendeiner anderen Klasse erben (müssen). (Dort schreibe ich ja sowieso mehr selber und habe da etwas mehr Kontrolle diesbezüglich).
Übersehe ich da was oder ist das so tasächlich nicht möglich in C#?
Falls es wirklich so nicht möglich sein sollte, wie realisiere ich dann obiges Beispiel am besten? Über Interfaces? Gibts alternativen?
Ich komme ursprünglich von Java.
Was ich bei C# in Verbindung mit den WindowsForms nicht ganz verstehe ist folgendes:
Jede Form, welche man mit VS erstellt, erbt ja (automatisch) von der Form-Klasse.
Was ist aber nun, wenn ich in einem C#-Projekt bei der View folgende Ableitungshierarchie der View-Klassen haben will:
- Ich habe 2 Form-Klassen: Form1 und Form2
- Form2 erbt von Form1
Das wäre doch so garnicht möglich, da ja automatisch bereits jede erstelle Form von von der Form-Klasse erbt und bekanntlich eine Klasse nur von maximal 1 Klasse erben kann (es gibt also keine Mehrfachvererbung).
In Java wäre obiges Beispiel problemlos möglich, da dort eben meine "GUI-Klassen" nicht bereits von beginn auf von irgendeiner anderen Klasse erben (müssen). (Dort schreibe ich ja sowieso mehr selber und habe da etwas mehr Kontrolle diesbezüglich).
Übersehe ich da was oder ist das so tasächlich nicht möglich in C#?
Falls es wirklich so nicht möglich sein sollte, wie realisiere ich dann obiges Beispiel am besten? Über Interfaces? Gibts alternativen?