C# für C++ Sprachumsteiger

C# für C++ Programmierer

In diesem Seminar werden C# und Visual Studio 2015 umfassend und kompakt vorgestellt. Es richtet sich vor allem an Sprachumsteiger, die bisher mit C++-gearbeitet haben, und jetzt C# für den professionellen Einsatz lernen wollen. Der Schwerpunkt liegt auf den Unterschieden zwischen C# und C++.

Inhalt

Die Inhalte können an die Wünsche der Teilnehmer angepasst werden.

1. Die Entwicklungsumgebung Visual Studio 2015

Editor, Debugger, Intellisense, Projektmappen-Explorer, Tipps und Tricks, weniger bekannte features; Unterschiede zu Visual Studio für C++

2. Elementare Datentypen und Anweisungen

Variablen: Feld- und Instanzvariablen, Lokale Variablen, Typ-Inferenz mit var
Ganzzahldatentypen (int, char usw.), implizite Konversionen, checked Kontext
Der Datentyp bool
Gleitkommadatentypen: float, double und Decimal (ein präziser Gleitkommatyp)
Elementare Anweisungen (if, for, while usw.)
Funktionen, Werte-, ref– und out-Parameter, Default-Argumente, benannte Parameter
Einfache Verweisklassen, Instanz-Elemente, Garbage Collection und statische Elemente
Die Verwendung der .NET-Bibliotheken
Konstanten und readonly Feldvariable
Wertetypen, Werte- und Verweissemantik, Aufzählungstypen
Die String-Klasse string
Überladene Methoden und Operatoren
Assemblies – Anwendungen und DLLs
Namensbereiche
Präprozessor-Direktiven
Ausdrücke

3. Arrays und Collection-Klassen

Eindimensionale Arrays und die foreach-Anweisung
Array-Funktionen für Verzeichnisse und Dateien
Die Basisklasse Array
Parameter-Arrays
Sequentielle Collection-Klassen (List<T>, Queue<T>, LinkedList<T>)
Generische Dictionaries, HashSet<T> und SortedSet<T>

4. .NET-Klassen zur Dateibearbeitung

Binärdateien und Textdateien
XML-Dateien
Serialisierung mit BinaryFormatter, SoapFormatter und XmlSerializer

5. Objektorientierte Programmierung: Verweisklassen

Felder und Methoden
Der Gültigkeitsbereich von Klassenelementen
Objekte, Datenkapselung und die Zugriffsrechte private und public
Datenkapselung mit Properties (Eigenschaften)
Der Aufruf von Methoden und der this-Verweis
Konstruktoren, der Standardkonstruktor, Objektinitialisierer, this-Konstruktorinitialisierer
Finalisierer
Statische Elemente, Konstruktoren und Klassen
OO-Analyse und Design: Der Entwurf von Klassen

6. Vererbung und Komposition

Die Elemente von abgeleiteten Klassen
Zugriffsrechte auf die Elemente von Basisklassen
Die Basisklasse System.Object und ihre Methoden
Vererbung bei Formularen in Forms-Anwendungen
OO-Design: Vererbung und „ist ein“-Beziehungen
OO-Design: Komposition und „hat ein“-Beziehungen
Konversionen zwischen abgeleiteten Klassen
Vererbung bei Werteklassen
Virtuelle Funktionen (new und override), späte Bindung und Polymorphie
Abstrakte Klassen und Methoden
Typprüfungen mit is und Typkonversionen mit as
Versiegelte (sealed) Klassen und Methoden

7. Exception-Handling

Die try-Anweisung
Die Basisklasse Exception
Einige vordefinierte Exceptions
throw-Anweisungen
Exceptions und Intellisense
Selbstdefinierte Exception-Klassen
Die Freigabe von Ressourcen, try-finally und die using-Anweisung
Die Protokollierung von Exceptions in einem EventLog

8. Interface-Klassen

Die Definition und Implementation
Beispiele: IComparable, IEnumerable, IClonable, IFormatable

9. Delegat-Typen und Events

Delegat-Typen und –Instanzen
Ereignisse (events)
Selbst definierte Komponenten und ihre Ereignisse
Anonyme Methoden
Lambda-Ausdrücke

10. Laufzeit-Typinformationen und Reflektion

Laufzeit-Typinformationen der Klasse Type
Reflektion mit der Klasse Assembly
Dynamisch erzeugte Datentypen und Plugins

11. Attribute

Vordefinierte Attribute
Selbstdefinierte Laufzeitattribute

12. Erweiterungsmethoden

13. Generische Programmierung

Generische Klassen
Typparameter-Einschränkungen (Constraints)

14. Dokumentationskommentare und CHM-Hilfedateien

Aus XML-Dateien Hilfedateien im CHM-Format erzeugen

15. Asynchrone Programmierung und Threads

Multithreading mit der Klasse BackgroundWorker
Ereignisbasierte asynchrone Programmierung
Sleep und Threads
Kritische Abschnitte und die Synchronisation von Threads

16. Die Steuerung von MS-Office Anwendungen

Die Visual Studio Tools für Office
Microsoft.Office.Interop

17. Systeminformationen und –operationen

Aus XML-Dateien Hilfedateien im CHM-Format erzeugen

18. LINQ und PLINQ

19. Reguläre Ausdrücke

 

Organisatorisches:

Zielgruppe: Erfahrene C++-Programmierer, die C# für den professionellen Einsatz lernen wollen.

Voraussetzungen:  Gute C++-Kenntnisse sind notwendig

Methodik: Vortrag mit vielen Übungen, in denen die Teilnehmer praxisnahe Programme entwickeln.

Manuskript: Ausführliche und detaillierte Schulungsunterlagen (ca. 200 Seiten)

Ort und Zeit: Dieses Seminar wird als Firmenseminar (inhouse) angeboten.

Dauer: 5 Tage

Dozent: Prof. Richard Kaiser führt seit vielen Jahren Seminare für Firmen durch, vor allem über Software-Entwicklung und die Programmiersprachen C#/C++/C. Er ist der Verfasser der Bücher „C++ mit Microsoft Visual C++ 2008“ und „C++ mit dem Borland C++Builder“ und ist Mitglied im DIN Normierungsausschuss Informationstechnik NI-22.

Weitere Seminare von Prof. Kaiser finden Sie bei der Technischen Akademie Esslingen.

Beurteilungen der Seminare durch die Teilnehmer finden Sie hier.

Kontakt: Richard Kaiser, Schwärzlocher Straße 53, 72070 Tübingen, .img, .img@.img