Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

C-Sharp - Zugriff auf Eigenschaften von vererbter Klasse

Frage Entwicklung C und C++

Mitglied: mabue88

mabue88 (Level 2) - Jetzt verbinden

05.08.2014 um 16:04 Uhr, 996 Aufrufe, 4 Kommentare

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
Mitglied: colinardo
05.08.2014, aktualisiert um 18:59 Uhr
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.
01.
class Mutter 
02.
03.
  public String muttername { get;set; } 
04.
  public void Methode1() 
05.
06.
    // mach was in der Mutterklasse 
07.
08.
09.
 
10.
class Kind : Mutter 
11.
12.
  public void Methode2() 
13.
14.
   // setze eine Eigenschaft der Mutterklasse 
15.
   this.muttername = "Helga"; 
16.
17.
}
Benutzung der Klassen
01.
// neues Kind erzeugen 
02.
Kind neuesKind = new Kind(); 
03.
 
04.
// Methode der Mutterklasse aufrufen 
05.
neuesKind.Methode1(); 
06.
 
07.
// Methode der Kindklasse aufrufen mit der eine Eigenschaft der Mutterklasse verändert wird 
08.
neuesKind.Methode2(); 
09.
 
10.
// veränderte Eigenschaft anzeigen 
11.
MessageBox.Show(neuesKind.muttername);
Grüße Uwe
Bitte warten ..
Mitglied: mabue88
05.08.2014, aktualisiert um 17:18 Uhr
Hallo Uwe,

das habe ich versucht (zumindest glaube ich das):
01.
class MessageBase 
02.
03.
    public String DataString; 
04.
05.
 
06.
class MessageType1 : MessageBase 
07.
08.
    public MessageType1(String data) 
09.
10.
        DataString = data; 
11.
12.
}
Visual Studio bringt aber die Fehlermeldung:
Einer Eigenschaft oder einem Indexer "MessageType1.DataString" kann nichts zugewiesen werden -- sie sind schreibgeschützt.
Bitte warten ..
Mitglied: colinardo
05.08.2014, aktualisiert um 17:22 Uhr
Du musst der Property sagen das sie beschrieben werden kann, und der Zugriff auf die Property erfolgt in der Kindklasse über das Keyword this.
01.
class MessageBase 
02.
03.
    public String DataString {get; set;} 
04.
05.
 
06.
class MessageType1 : MessageBase 
07.
08.
    public MessageType1(String data) 
09.
10.
        this.DataString = data; 
11.
12.
}
Lese das Beispiel unter dem geposteten Link oben ... dann wird es klarer.
Bitte warten ..
Mitglied: mabue88
13.08.2014 um 08:20 Uhr
Hallo colinardo,

mit dem Zugriffsmodifizierer 'protected' habe ich das hinbekommen, was ich wollte!

Danke
mabue
Bitte warten ..
Ähnliche Inhalte
C und C++
C-Sharp - Event durch eine Klasse durchreichen?
Frage von mabue88C und C++1 Kommentar

Hallo, ich habe ein Projekt, bei dem eine Klasse mehrere untergeordnete Klassen besitzen. Nehmen wir einfach mal an, dass ...

C und C++
C Sharp: Timer stoppen aus einer anderen Klasse heraus
gelöst Frage von Heinz2511C und C++1 Kommentar

Hallo, ich benutze C# mit Visual Studio 2012. Ich habe folgendes Problem: Ich habe eine Form (formStart), die ein ...

Visual Studio
C-Sharp Klasse als Parameter an Function übergeben
gelöst Frage von mayho33Visual Studio

Hallo @ All Ich beiße mir schon wieder die Zähne aus und hoffe aufs Neue auf eure Unterstützung mit ...

C und C++
C-Sharp Label aus anderer Klasse heraus ändern
gelöst Frage von 8digitC und C++2 Kommentare

Hi, in einer C# Form habe ich ein Label, welches sich aus einer anderen Klasse heraus ändern soll. Datei1: ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 12 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 16 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware10 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Cloud-Dienste
PIM als SaaS Nutzungsgebühr
Frage von vanTastCloud-Dienste8 Kommentare

Moin, wir haben uns ein PIM (Product Information Management) nach unseren Ansprüchen für viel Geld als SaaS-Lösung bauen lassen. ...