6 C#-GrundlagenProjektmappe: 6_C-Sharp-GrundlagenObjektorientierte Programmierung mit C++ und C# WS 2010/11Prof. Dr. Herrad Schmidt
6 C#-GrundlagenProjektmappe: 6_C-Sharp-Grundlagen
Objektorientierte Programmierung mit C++ und C# WS 2010/11Prof. Dr. Herrad Schmidt
C#-Grundlagen s.a. http://msdn.microsoft.com/de-de/library/z1zx9t92.aspx Objektorientierte Sprache (keine Mehrfachvererbung, aber es können mehrere Schnittstellen implementiert werden) Klasse Object ist Wurzel aller Klassen Interfaces Properties (get/set) Garbage Collector Generische Methoden und Typen, Iteratoren Delegates Attribute (Metadaten zu Typen) Zeiger möglich, aber nicht unbedingt üblich Keine Headerdateien
Quelle: http://msdn.microsoft.com/de-de/library/z1zx9t92.aspx Quellcode wird beim Kompilieren in einen Intermediate Language (IL)-Code (sprachunabhängig) übersetzt und mit Ressourcen und Metadaten etc. in eine ausführbare Datei (Assembly) gespeichert. Bei der Ausführung wird die Assembly (Zwischencode) just-in-time durch die CLR in die Maschinensprache der CPU übersetzt.
C# (1): Klassenpublic class K{ public string Zeichenkette; public K() { Zeichenkette = "blabla" ; } public void Methode() { … }} Eigenschaften (properties) public string Bezeichnung { get { return Zeichenkette; } set { Zeichenkette = value; } } Vererbung (nur bei Klassen, nicht bei struct) und Polymorphismuss. http://msdn.microsoft.com/de-de/library/ms173149.aspxund http://msdn.microsoft.com/de-de/library/ms173152.aspx Containerklassen (Collections) und Iteratorenarray, ArrayList, List, dictionary, foreach
C# (2): Schnittstellen (interfaces)Zusammenfassung von (automatisch öffentlichen) Methoden, Eigenschaften und Ereignissen ohne Implementierung;Eine oder mehrere Klassen oder Strukturen enthalten die Implementierung. Sie erben vom interface. Delegaten (Delegatentyp)vergleichbar einem Funktionszeiger in C++, ist aber im .NET Framework eine Klasse, die einen Verweis auf eine Methode enthalten kannDeklaration des Delegatentyps MeinDelegat mit Signatur:public delegate int MeinDelegat (string Text); Instanziierung:MeinDelegat md = new MeinDelegat(DelegatmethodeX); MeinDelegat md = DelegatmethodeX; // seit C# 2.0 auch möglich Aufruf:md("blabla");
C# (3): Ereignis (event)s.a. http://msdn.microsoft.com/de-de/library/awbftdfh.aspxPrinzip:Der Herausgeber verfügt über ein event und löst es aus.Der Abonnent behandelt das Ereignis durch Ereignishandlermethoden.Ereignisse basieren auf dem EventHandler-Delegaten public delegate void EventHandler(object sender, EventArgs e); und der EventArgs-Klasse. Die Herausgeberklasse deklariert ein event: public event EventHandler Aktion; Abonnent fügt Methode hinzu:Objekt.Aktion += Ereignishandlermethode; Herausgeber löst das Ereignis aus:Aktion(this, …);
Solution 6_C-Sharp-Grundlagen: A_Konsolenanwendung B_Listen:diverse Container-Klassen C_Interface D_Delegate E_Event Übung 6: Konsolenanwendung in C# Schreiben Sie ein C#-Programm mit Events und Delegaten:Es gibt Teilnehmerobjekte und ein Verwaltungsobjekt. Wenn die Teilnehmer sich anmelden, ändert sich ihr Status (angemeldet = 1). Wenn der Anmeldeschluss erreicht ist, löst das Verwaltungsobjekt ein Event aus, wodurch bei allen Teilnehmern der Status auf 2 gesetzt wird (im Sinne einer Anmeldebestätigung).
Comments