Programmieren lernen mit Visual C# 2013

Werbung
Dirk Louis
Richtig einsteigen:
Programmieren lernen
mit Visual C# 2013
Dirk Louis: Programmieren lernen mit Visual C# 2013
Copyright © 2014 O’Reilly Verlag GmbH & Co. KG
Das in diesem Buch enthaltene Programmmaterial ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autor, Übersetzer und der Verlag übernehmen folglich keine Verantwortung
und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus
der Benutzung dieses Programmmaterials oder Teilen davon entsteht. Die in diesem Buch erwähnten
Software- und Hardwarebezeichnungen sind in den meisten Fällen auch eingetragene Marken und
unterliegen als solche den gesetzlichen Bestimmungen. Der Verlag richtet sich im Wesentlichen nach
den Schreibweisen der Hersteller.
Das Werk einschließlich aller Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der
engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulässig und strafbar.
Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.
Die in den Beispielen verwendeten Namen von Firmen, Organisationen, Produkten, Domänen, Personen, Orten, Ereignissen sowie E-Mail-Adressen und Logos sind frei erfunden, soweit nichts anderes
angegeben ist. Jede Ähnlichkeit mit tatsächlichen Firmen, Organisationen, Produkten, Domänen,
Personen, Orten, Ereignissen, E-Mail-Adressen und Logos ist rein zufällig.
Kommentare und Fragen können Sie gerne an uns richten:
Microsoft Press Deutschland
Konrad-Zuse-Straße 1
85716 Unterschleißheim
E-Mail: [email protected]
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
16 15 14
Druck-ISBN 978-3-86645-221-3
PDF-ISBN 978-3-8483-3001-0
EPUB-ISBN 978-3-8483-0039-6
MOBI-ISBN 978-3-8483-0203-1
© 2014 O’Reilly Verlag GmbH & Co. KG
Balthasarstr. 81, 50670 Köln
Alle Rechte vorbehalten
Korrektorat: Anja Pabst, Siegen
Lektorat: René Majer, [email protected]
Layout: Helmut Kraus, www.exclam.de
Satz: Nadine Krumm, Cordula Winkler, mediaService, Siegen (www.mediaservice.tv)
Umschlaggestaltung: Helmut Kraus, www.exclam.de
Gesamtherstellung: Digital Print Group O. Schimek GmbH, Nürnberg (www.digital-print-group.de)
Inhaltsverzeichnis
Teil I: Erste Schritte
1
Einleitung 15
1.1
1.2
1.3
Aufbau dieses Buches Konventionen in diesem Buch Software und Beispielsammlung Arbeiten mit der Beispielsammlung
Einstellungen aus Beispielprojekten ablesen
16
17
18
18
19
2
Das erste Programm – das Projektgerüst 23
2.1
Von der Idee zum Programm Fallbeispiel: Eine verbesserte Fotoanzeige
Programmierung erfolgt in Zyklen
Willkommen bei Visual Studio Ein neues Projekt beginnen Quelltext – der erste Kontakt! Form1.cs und Form1.Designer.cs
namespace und using
Übungen zu diesem Kapitel 23
24
25
28
30
35
45
48
49
2.2
2.3
2.4
2.5
3
Das erste Programm – die Benutzeroberfläche 51
3.1
Die Designer-Umgebung Der Windows Forms-Designer
Der Werkzeugkasten
Das Eigenschaftenfenster
Das Menü Format
Komponenten aufnehmen Komponenten konfigurieren Ereignisse bearbeiten Eigenschaften zur Laufzeit ändern Die Eigenschaft Name Was tut sich auf der Festplatte? 51
52
52
53
54
54
57
59
60
62
63
3.2
3.3
3.4
3.5
3.6
3.7
6
3.8
3.9
Inhaltsverzeichnis
Anwendungen außerhalb von Visual Studio aufrufen Aufruf über den Windows Explorer
Aufruf über Start/Ausführen bzw.
Start/<Suche starten>
Aufruf über Start- oder Desktop-Link
Übungen zu diesem Kapitel 63
64
64
65
65
Teil II: Grundkurs C#
4
Grundkurs: Datenverarbeitung 4.1
Datentypen und Variablen Der »Wert« der Variablen
Variablen bei der Definition initialisieren
Werte von Variablen abfragen
Die elementaren Datentypen
Strings
Typumwandlung
C# für Pedanten
Variablen kontra Konstanten Operatoren Die verschiedenen Operatoren
Verwendung der trigonometrische Methoden
Division
Objekte und Klassen C# für Philosophen
Objekte und alte Datentypen
Klassen definieren
Mit Klassen programmieren
Arrays Arrays definieren
Auf Array-Elemente zugreifen
Arrays initialisieren
Vordefinierte Klassen und Namespaces Übungen zu diesem Kapitel 67
69
70
70
72
74
79
85
86
87
88
90
92
93
93
94
95
101
106
106
107
108
109
110
Grundkurs: Modularisierung und Programmsteuerung 113
Modularisierung durch Klassen und Methoden Teilprobleme in Methoden implementieren I
Teilprobleme in Methoden implementieren II
Teilprobleme in Klassen implementieren
Eigene Bibliotheken 113
116
117
119
122
4.2
4.3
4.4
4.5
4.6
4.7
5
5.1
67
Inhaltsverzeichnis
5.2
7
5.4
5.5
Kontrollstrukturen Bedingungen: if-else
Bedingungen und boolesche Ausdrücke
Praxisbeispiel: Rechenmeister
Mehrfachbedingungen: switch
Die Schleifen for, while und foreach
Schleifenvariablen und Abbruchbedingungen
Schleifen und Arrays
Zauber mit Schleifen, Zahlen und Kaninchen
Änderung des Programmflusses
Fehlerbehandlung durch Ausnahmen Ausnahmen abfangen
Mehrere catch-Blöcke
Die Ausnahme-Parameter
Eigene Ausnahmen
Selbstkontrolle Übungen zu diesem Kapitel 6
Rundgang durch Visual Studio für Fortgeschrittene 153
6.1
6.2
Tour-Start Die Projektverwaltung Ein Projekt anlegen
Projekte speichern, schließen und öffnen
Mit Projekten arbeiten
Projekteigenschaften festlegen
Projektmappen Der Editor Syntax-Hervorhebung
Automatische Einrückung
IntelliSense
Zusammenarbeit mit Compiler und Debugger
Weitere Funktionen
Der Windows Forms-Designer Komponenten hinzufügen und löschen
Komponenten auswählen Komponenten dimensionieren
Komponenten ausrichten Komponenten kopieren
Das Eigenschaftenfenster
Der Compiler 5.3
6.3
6.4
6.5
126
127
128
128
132
133
135
137
138
139
140
140
144
145
146
146
150
153
154
154
154
155
157
160
164
164
164
165
167
167
167
167
168
168
169
169
170
171
8
6.6
6.7
6.8
6.9
Inhaltsverzeichnis
Der Debugger Fehler und Debugging
Ablauf von Debug-Sitzungen
Vorbereitungen zum Debuggen
Programm in Debugger laden und starten
Programm anhalten Programm schrittweise ausführen
Die Debug-Fenster
Hilfe Die Online-Hilfe
Die lokale Hilfe
Konfiguration Übungen zu diesem Kapitel 172
173
173
174
175
176
177
177
179
180
181
182
183
Teil III: Aufbaukurs C#
7
Eigene Klassen 185
7.1
7.4
7.5
Statische und nicht-statische Klassenelemente Nicht-statische Elemente
Statische Elemente
Methoden Definition von Methoden
Rückgabewerte von Methoden – return
Parameterübergabe
Überladung
Zugriff und Zugriffbeschränkung Gültigkeit
Lokale Variablen und Verdeckung
Die Zugriffsmodifizierer
Studie 4: Zugreifbarkeit auf Formularebene
Eigenschaften Übungen zu diesem Kapitel 185
185
188
191
191
192
192
197
198
198
199
200
202
209
215
8
Klassen und Vererbung 217
8.1
Vererbung Der grundlegende Mechanismus
Der Zugriffsmodifizierer protected
Aufruf des Basisklassenkonstruktors
Verbergen und Überschreiben geerbter Methoden
Polymorphie Rückverwandlung
Vorteile der Polymorphie
217
217
223
225
227
230
231
232
7.2
7.3
8.2
Inhaltsverzeichnis
8.3
9
8.5
Object ToString() überschreiben
Boxing
Schnittstellen (Interfaces) Schnittstellen definieren
Schnittstellen implementieren
Übungen zu diesem Kapitel 235
236
238
238
239
239
242
9
Nützliche .NET-Klassen 245
9.1
Textausgaben formatieren Einfache Ausgabe via Text
Formatierte Zahlenausgabe
Ausgabe mittels Platzhaltern
Datum und Uhrzeit Datum und Uhrzeit ermitteln
Datums- und Zeitangaben manipulieren
Datums- und Zeitangaben ausgeben
Zeitspannen messen
Zufallszahlen Die Auflistungsklassen Historisches
Die Auflistungen im Vergleich
ArrayList
List<T>
Dictionary<TKey, TValue>
Stack<T> Dateien In Dateien schreiben
Lesen aus Dateien
Informationen über Dateien und Verzeichnisse
Studie 5: Reaktionstester Ausgangspunkt
Periodisch wiederkehrende Aufgaben mit Timer
Einen Zähler verwenden
Was hat das Redesign gebracht?
Doppelbelegung der Schaltfläche
Den Reaktionstest starten
Den Reaktionstest auswerten
Verbesserungen
Übungen zu diesem Kapitel 245
245
246
248
249
249
250
251
252
253
255
255
256
257
260
262
264
266
266
268
270
273
274
275
276
279
280
280
282
283
284
8.4
9.2
9.3
9.4
9.5
9.6
9.7
10
Inhaltsverzeichnis
Teil IV: Windows Forms-Anwendungen
10
Formulare und Steuerelemente 287
10.1
Zusammengefasst: Was sind WindowsAnwendungen? Das Windowing-System
Die grafische Oberfläche
Die Ereignisbehandlung
Fenster, Hauptfenster und Formulare Nachgefragt, was ist eigentlich ein Fenster?
Das Fenster konfigurieren
Anwendungssymbol
Steuerelemente Programmieren mit Steuerelementen
Beschriftungsfelder
Schaltflächen
Kontrollkästchen
Optionsfelder und GroupBox
Eingabefelder
Listenfelder
Kombinationsfelder
Weitere Steuerelemente und weitere Informationen
Layout mit Containern Neutrale Container (Panel)
Layout-Container
Funktionale Container
Ereignisbehandlung Ereignisbehandlung einrichten
Welches Ereignis soll ich abfangen und bearbeiten? Übungen zu diesem Kapitel 287
287
288
289
289
290
291
297
299
299
301
303
304
305
306
308
310
311
311
312
313
314
314
314
315
317
11
Menüs und Symbolleisten 319
11.1
Menüleisten Aufbau einer Menüleiste
Ereignisbehandlung für Menüelemente
Menüelemente konfigurieren
Symbolleisten Kontextmenüs Übungen zu diesem Kapitel 319
319
323
325
325
327
328
10.2
10.3
10.4
10.5
10.6
11.2
11.3
11.4
Inhaltsverzeichnis
11
12
Dialogfelder 329
12.1
12.2
Was sind Dialogfelder? Dialogfelder aufbauen und konfigurieren Das Formular anlegen
Formulare in Dialogfelder verwandeln
Dialogfelder erzeugen und anzeigen Einstellungen aus Dialogfeldern abfragen Standarddialoge Meldungsfenster
Dateien öffnen
Übungen zu diesem Kapitel 329
330
330
331
332
334
336
337
337
339
13
Grafik 341
13.1
Das Arbeitsmaterial des Künstlers Text zeichnen
Rekonstruktion von Zeichnungen –
Das Paint-Ereignis
Zeichenmethoden – Graphics
Pinsel, Stift und Schrift
In Panels zeichnen Die Benutzeroberfläche
Die Auswahl der Funktionen
Die Funktionen zeichnen
Freihandlinien Konzept für Freihandlinien
Eigene Graphics-Objekte erzeugen
Bilder anzeigen Bilder aus Bilddateien laden
Bilder anzeigen
Studie 6: Ein Bildbetrachter
Übungen zu diesem Kapitel 341
341
12.3
12.4
12.5
12.6
13.2
13.3
13.4
13.5
343
344
346
347
348
349
349
351
351
353
355
355
356
357
359
Teil V: Datenbanken und Bildschirmschoner
14
Datenbankzugriff (ADO.NET) 363
14.1
14.2
14.3
Relationale Datenbanken und SQL SQL-Grundlagen Zugriff auf eine SQL Server-Datenbank Die Datenbank
Die Anwendung
363
365
367
368
374
12
14.4
Inhaltsverzeichnis
14.6
Zugriff auf eine Microsoft Access-Datenbank Projekt kopieren
Datenbank erstellen
Quelltext für Datenbankzugriff anpassen
Datensätze bearbeiten Das Ausgangs-Projekt
Das Zusammenspiel der Datenbankklassen
Der Code
Übungen zu diesem Kapitel 380
380
380
381
382
382
383
384
389
15
Bildschirmschoner 391
15.1
15.3
Was unterscheidet Bildschirmschoner von
­anderen Windows-Anwendungen? Ein Ticker als Bildschirmschoner Konfiguration des Fensters
Beenden bei Mausklick
Aufrufargumente auswerten
Die Animation
Den Bildschirmschoner einrichten
Übungen zu diesem Kapitel 391
392
392
393
393
395
399
399
16
Wie geht es weiter? 401
14.5
15.2
Teil VI: Anhänge
A
Lösungen zu den Übungen
403
B
Installation der Visual Studio Express Edition
423
B.1
B.2
B.3
B.4
Systemvoraussetzungen
Download
Installation
Starten
423
424
425
425
C
Weitergabe von Programmen
427
C.1
C.2
C.3
Vorarbeiten
Der Setup-Assistent
Woran hakt es?
Das .NET Framework
Bilder
Externe Dateien
DLLs
427
428
429
429
430
430
430
Inhaltsverzeichnis
13
D
.NET Framework und C#‑Compiler
431
D.1
D.2
D.3
D.4
Das .NET Framework
Die Komponenten des .NET Frameworks
Bezugsquellen
Geschichte und Motivation
431
434
434
435
E
Konsolenanwendungen
439
E.1
Das Grundgerüst
Konsolenanwendungen in Visual Studio
Write(), WriteLine()
Lesen von Tastatur
Konsolenanwendungen außerhalb von Visual
Studio ausführen
440
440
441
442
Stichwortverzeichnis 445
17
442
Herzlich willkommen beim Einsteiger-Kurs »Visual C#-Programmierung«! Freuen Sie sich
auf eine ebenso unterhaltsame wie fundierte Einführung in die Programmierung und auf:
zz
interessante Programmierbeispiele – wie z.B. eine eigene Version der Windows-
Fotoanzeige, ein Rechentrainer, ein Einarmiger Bandit, ein Reaktionstester, ein
Texteditor, ein Bildschirmschoner etc.
zz
pures Windows – von Anfang an werden Sie mit Windows-Anwendungen, also
Programmen mit grafischer Benutzeroberfläche arbeiten
zz
viele Übungen – am Ende jedes Kapitels gibt es Übungen zum Wiederholen und
Einüben des gelernten Stoffes sowie zum Sammeln eigener Erfahrungen. Die
Lösungen zu diesen Übungen finden Sie am Ende des Buches.
zz
Schritt-für-Schritt-Anleitungen und Fallstudien – neben den Übungen am
Kapitelende gibt es noch diverse in die Kapiteltexte eingestreute Schritt-fürSchritt-Anleitungen und Studien, die Sie theoretisch – oder besser noch ganz real –
nachvollziehen können. Diese Übungen sollen Ihnen helfen, typische Arbeitsgänge
zu verinnerlichen, Praxis zu schnuppern oder auch – wie im Falle der Designstudie
»Reaktionstester« aus Kapitel 9 – einmal näherungsweise nachzuempfinden, mit
welchen Problemen und Entscheidungen man als Programmierer so zu kämpfen
hat (also quasi einen Blick über die Schulter zu werfen).
zz
zahlreiche Hinweise, Praxistipps und Hintergrundinformationen
zz
große Themenvielfalt – Hauptaugenmerk dieses Buches ist natürlich das Erlernen
der Programmiersprache C#, die Erstellung von Windows-Anwendungen und die
Arbeit mit der Entwicklungsumgebung Visual Studio. Darüber hinaus können Sie
sich mit diesem Buch aber noch in viele weitere Programmiergebiete einarbeiten,
namentlich:
zz die Erstellung von Datenbankanwendungen (Kapitel 14),
zz das Schreiben von Bildschirmschonern (Kapitel 15)
zz das Schreiben von Konsolenanwendungen (Anhang E)
zz die Weitergabe von Programmen (Anhang C)
zz das Schreiben von Windows Store-Apps (als herunterladbarer PDF-Auszug aus
dem C#-Entwicklerbuch)
I – Erste Schritte
Einleitung
Herunterladen