C-Sharp - Zugriff auf Eigenschaften von vererbter Klasse
Hallo,
ich habe mal wieder eine Frage, die für die Profis wahrscheinlich schnell zu beantworten ist.
Folgendes Szenario:
Ein C#-Programm empfängt über einen TCP-Client von einem Server Daten. Bei den Daten kann es sich prinzipiell um drei verschiedene Meldungstypen handeln. Grundsätzlich unterscheiden sich die Daten der Meldungen. Aber einige Eigenschaften sind Bestandteil aller drei Meldungstypen.
Momentan habe ich jeden Meldungstyp eine eigene Klasse erstellt. Darin werden die vom Server stammenden Daten ausgewertet, verarbeitet und in entsprechenden Eigenschaften gespeichert.
Mich stört aber, dass ich einige Eigenschaften in allen drei Klassen erstellen muss.
Mein Gedanke war es eine Grundklasse zu erstellen, in welcher die gemeinsamen Eigenschaften enthalten sind. Die Klassen zur Verarbeitung der einzelnen Typen sollen die Eigenschaften dann von dieser Grundklasse erben.
Die Umsetzung bekomme ich aber nicht hin.
Kann mir jemand an einem Minimalbeispiel (eine Grundklasse, eine davon abgeleitete Klasse) zeigen, wie das richtig gemacht wird?
Danke!
mabue
ich habe mal wieder eine Frage, die für die Profis wahrscheinlich schnell zu beantworten ist.
Folgendes Szenario:
Ein C#-Programm empfängt über einen TCP-Client von einem Server Daten. Bei den Daten kann es sich prinzipiell um drei verschiedene Meldungstypen handeln. Grundsätzlich unterscheiden sich die Daten der Meldungen. Aber einige Eigenschaften sind Bestandteil aller drei Meldungstypen.
Momentan habe ich jeden Meldungstyp eine eigene Klasse erstellt. Darin werden die vom Server stammenden Daten ausgewertet, verarbeitet und in entsprechenden Eigenschaften gespeichert.
Mich stört aber, dass ich einige Eigenschaften in allen drei Klassen erstellen muss.
Mein Gedanke war es eine Grundklasse zu erstellen, in welcher die gemeinsamen Eigenschaften enthalten sind. Die Klassen zur Verarbeitung der einzelnen Typen sollen die Eigenschaften dann von dieser Grundklasse erben.
Die Umsetzung bekomme ich aber nicht hin.
Kann mir jemand an einem Minimalbeispiel (eine Grundklasse, eine davon abgeleitete Klasse) zeigen, wie das richtig gemacht wird?
Danke!
mabue
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 245608
Url: https://administrator.de/forum/c-sharp-zugriff-auf-eigenschaften-von-vererbter-klasse-245608.html
Ausgedruckt am: 24.04.2025 um 19:04 Uhr
4 Kommentare
Neuester Kommentar
Hi mabue,
ein Beispiel für Vererbung mit Klassen findest du hier:
http://msdn.microsoft.com/de-de/library/ms173149.aspx
Du musst einfach nur an deiner abgeleitete Klasse die Mutterklasse per Doppelpunkt hinzufügen, dann kannst du auf die Eigenschaften und Methoden der Mutterklasse zugreifen, sofern du sie public deklariert hast. Deine Eigenschaften der Mutterklasse musst du natürlich im Konstruktor der Klasse initialisieren wenn sie schon Werte besitzen sollen, wenn du die Kindklasse erstellst.
z.B.
Benutzung der Klassen
Grüße Uwe
ein Beispiel für Vererbung mit Klassen findest du hier:
http://msdn.microsoft.com/de-de/library/ms173149.aspx
Du musst einfach nur an deiner abgeleitete Klasse die Mutterklasse per Doppelpunkt hinzufügen, dann kannst du auf die Eigenschaften und Methoden der Mutterklasse zugreifen, sofern du sie public deklariert hast. Deine Eigenschaften der Mutterklasse musst du natürlich im Konstruktor der Klasse initialisieren wenn sie schon Werte besitzen sollen, wenn du die Kindklasse erstellst.
z.B.
class Mutter
{
public String muttername { get;set; }
public void Methode1()
{
// mach was in der Mutterklasse
}
}
class Kind : Mutter
{
public void Methode2()
{
// setze eine Eigenschaft der Mutterklasse
this.muttername = "Helga";
}
}
// neues Kind erzeugen
Kind neuesKind = new Kind();
// Methode der Mutterklasse aufrufen
neuesKind.Methode1();
// Methode der Kindklasse aufrufen mit der eine Eigenschaft der Mutterklasse verändert wird
neuesKind.Methode2();
// veränderte Eigenschaft anzeigen
MessageBox.Show(neuesKind.muttername);
Du musst der Property sagen das sie beschrieben werden kann, und der Zugriff auf die Property erfolgt in der Kindklasse über das Keyword this.
Lese das Beispiel unter dem geposteten Link oben ... dann wird es klarer.
class MessageBase
{
public String DataString {get; set;}
}
class MessageType1 : MessageBase
{
public MessageType1(String data)
{
this.DataString = data;
}
}