Der Übersetzer
über det1 Übersetzer dieses �uehs
Lars Schulten ist fiTier Übersetzer für IT-Htchliteratur und hat fii...
303 downloads
3165 Views
26MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Der Übersetzer
über det1 Übersetzer dieses �uehs
Lars Schulten ist fiTier Übersetzer für IT-Htchliteratur und hat fiir den
O'Reilly Verlag schon unzählige ßüchcr zu ungeHihr allem übersetzt, was man mit Computern so anstellen kann. Eigentlich hat er mal Philosophie studiert, aber mit Computern schlägt er sich schon seit den Zeiten herum, da 'Vindmvs laufen lernte. Die Liste der Dinge, mit denen er sich beschäf tigt, ist ungefUhr so lang, launenhaft und heterogen wie die seiner Lieblings essen und Lieblingsbüchet:
Allein tritt er eigentlich nur auf, wenn er mal wieder versucht, den körper lichen Verfall mit sportlicher Betätigung aufzuhalten. Sonst ist er immer in Begleitung eines Buchs, seines Laptops oder Frederics unterwegs. Frederic ist sechsJahre alt und setzt gern eine sehr kritische J\·Iiene auf, wenn Papa die Spielerei mit dem Computer als Arbeit bezeichnet.
V
Weitere Bücher von O'Reilly zu C# Programmieren mit C# 3.0
C# 3.0 - kurz & gut UNQ - kurz & gut
C# 3.0 Entwurfsmuster C# 3.0 in a Nutshell C# 3.0 Cookbook TM
Weitere Bücher in O'Reillys Von Kopf bis Fuß-Reihe Ajax von Kopf bis Fuß
Entwurfsmuster von Kopf bis Fuß HTML mit CSS und XHTML von Kopf bis Fuß Java T M von Kopf bis Fuß JavaScript von Kopf bis Fuß Objektorientierte Analyse und Design von Kopf bis Fuß Softwareentwicklung von Kopf bis Fuß SQL von Kopf bis Fuß Head First EJB ™ Head First PMP Head First Servlets and JSP
vi
Inhaltsverzeichnis
Der Inhalt (im i1herhlicR) 1 2 3 4
5 6 7 8 9 10 11 12 13 14 15
Produktiv mit C#: Grqfische Anwendungm in 10 Jfinuten und weniger
Es ist alles bloß Code: Unter der 1\Jotor/wube
Objekte: Orientieren Sie sich!: Atifgabensfte?"ijischer Code Typen und Referenzen: Es ist 10:00. Wissm Sie, wo Ihre Daten sind? C#-\Vorkshop I: Ein Tag beim Rennen
Kapsclung: Alles zu zeigm ist nicht immer ricldig Vererbung: Der Stammbaum Ihres Oijckts Schnittstellen und abstrakte Klassen: lilassen, die Versprahm halten Enums und Auflistungen: Dat.en in J.\Iassen spcichem C#-\Yorkshop
2: Die Suche
Dateien lesen und schreiben: Speichere das ArraJ) rette di'c HH! Exception-Handling: Hhlrr-Prävention Events und Dclegatcs: H0s Ihr Code macht, wenn Sie nicht guckm Rückblick und Vorschau: H1issen, J.\Iadtlund cooles Zeug erstellen Stcuefelemente und Grafik: 1\Iadun Sie es ansehnlich Captain Amazing: Der Tod des Objekts LINQ; Bekommm Sie ihre Daten in den C#-\Vorkshop
A
xxix
Einftihnmg
3: bwaders
Griff
Anhang A: Die Top-5 der 77mnen, dü es nicht ins Buclt gesduifjl habm
1 43 85 123 163 173 205 251 309 363 385 439 483 515 563 621 653 681 703
Der Inhalt Getzt ausfUhrlieh) Einführung Ihr Gehirn und C#.
Sie versuchen, etwas zu lernen, und Ihr Hirn tut sein Bestes, damit das
Gelernte nicht hängen bleibt. Es denkt nämlich: »Wir sollten lieber ordentlich Platz für wichtigere
Dinge lassen, z.B. für das Wissen darüber, welche Tiere einem gefährlich werden könnten oder dass
es eine ganz schlechte Idee ist, nackt Snowboard zu fahren.« Tja, wie schaffen wir es nun, Ihr Gehirn davon zu überzeugen, dass Ihr Leben davon abhängt, etwas über C# zu wissen? Für wen ist dieses Buch?
x..xviii
\Vir wissen, \Nas Ihr Gehirn denkt
xxix
fdetakognition
xx..xi .
·Machen Sie sich Ihr Hirn untertan
x.:xxiii
\Vas Sie flir dieses Buch brauchen
xxxiv
Lies mich
XX.X\'
Die Fachgutachter
x.xxvi
Danksagungen
XXX\'11
vil
Inhaltsverzeichnis
Yr9clukt1V mit C#
1
Grafische Anwendungen in 10 Minuten und weniger Sie möchten Programme so richtig schnell erstellen können? Mit C# halten Sie eine
mächtige Programmiersprache
Händen. Dank der Visual
und ein
wertvolles Werkzeug in
Ihren
Studio IDE müssen Sie nie wieder Stunden damit vergeuden, obskuren
Code zu schreiben, damit ein Button schließlich tut, was er soll. Noch besser ist, dass Sie sich endlich nur noch darauf konzentrieren müssen, welcher der Methodenparameter den
Ihre Arbeit zu erledigen, statt sich zu merken,
Namen eines Buttons angibt und welcher sein Label. Klingt
das vielversprechend? Blättern Sie um, damit wir mit dem Programmieren beginnen können. "'arum Sie C# lernen sollten
2
C# und Visual Studio IDE erleichtern Ihnen eine .Menge Dinge
3
Verhelfen Sie Ihrem Chef zu einem papierlosen Büro
4
Bringen Sie die Bedürfhisse Ihres Kunden in Erfahrung,
Em>iio'-'.•·,,.,_.,.,,..".l'�p·J-'"''"'� K<md•on
bevor Sie beginnen, Ihr Programm zu erstellen
5
Das \\'erden Sie aufbauen
6
\Vas Sie in Visual Studio tun ...
8
\Vas Visual Studio f'tir Sie macht ...
8
Die Benutzerschnittstelle enhvickeln
12
Visual Studio hinter den Kulissen
14
Den automatisch generierten Code ergänzen
15
Sie können Ihre Anwendung bereits ausführen
16
Wir brauchen eine Datenbank zur Speicherung der Informationen
18
Die Tabelle fiir die Kontaktliste erstellen
20
Die Felder auf einer Adresskartc sind die Spalten in der Tabelle Personen
22
Den Tabellenbau abschließen
25
Erstellen Sie ein Diagramm für Ihre Daten,
L
NET Framework·
·
VIII
Lösungen
.;;a--...
damit Ihre Anwendung darauf zugreifen kann
26
Ihre Kartendaten in die Datenbank einfilgen
28
Formular und Datenobjekte über eine Datenquelle verbinden
30
Dem Formular datenbankgesteuerte Steuerelemente hinzufiigcn
32
Gute Programme sind intuitiv zu verwenden
3+
IHRE Anwendung in eine Anwendung fiir ALLE verwandeln
37
Ihren Nutzern die Anwendung geben
38
Sie sind noch NICHT fertig: Testen Sie Ihre Anwendung
39
Sie haben eine vollständige, datengesteuerte Anwendung erstellt
40
lnhaltsvorzoichnis
Es 'lst ctlles b!9ß C9de Unter der Motorhaube Sie sind Programmierer, nicht bloß I OE-Benutzer. Mit der IDE können Sie eine Menge Dinge erledigen. Aber sie kann Sie nur ein be stimmtes Stück Ihres Wegs begleiten. Sicher gibt es eine Menge
sich wiederholender
Aufgaben, die Sie erledigen müssen, wenn Sie eine Anwendung aufbauen. Diese Aufgaben kann Ihnen die I D E wunderbar abnehmen. Aber die Arbeit mit der IDE ist erst
der Anfang. Sie können Ihre Programme dazu bringen, so viel mehr zu machen - und das geht nur, indem Sie Griff, gibt es
C#-Code schreiben. Haben Sie das Programmieren einmal
nichts mehr, was Ihre Programme nicht tun könnten. \Venn Sie das tun . . . ... macht die IDE das
"·�·-�
44 45
'Vo die Programme herkommen
46
Die IDE hilft Ihnen beim Programmieren
48
\Venn Sie Dinge in der IDE ändern, ändern Sie auch Ihren Code
50
Anatomie eines Programms
52
Ihr Programm weiß, wo es anf.'lngen muss
54-
Sie können den Einstiegspunkt Ihres Programms ändern
56
Zwei Klassen können im gleichen Namensraum sein
61
Ihre Programme nutzen Variablen, um mit Daten zu arbeiten
62
C# nutzt vertraute mathematische Symbole
64
Schleifen fUhren eine Aktion immer wieder aus
65
Zeit, mit dem Programmieren zu beginnen
66
if/clse-Anwcisungen f.illen Entscheidungen
67
Bedingungen aut:�tellen und prüfen
68
;,/ ·
Jtdt• I•M, Sit t>� •-to�' dtfir.it.-�n Slt (;H" /IJ"tMtd·Pr"$����"" t·.-.{d)(._, "" d3 w, d;";{ e s ;n Co:>Je ,."" de d '-" "' ''" >.;-h 1tfttn1{
im
lx
lnhaltsverzeiclmis
Objekte: Or'lent'leren S'le s'lcb) Aufgabenspezifischer Code Jedes Programm, das Sie schreiben, löst ein Problem. Bevor Sie ein Programm erstellen, Oberlegen Sie sich am besten, welches lösen soll. Deswegen sind
Problem Ihr Programm
Objekte so ungemein hilfreich. Mit diesen können Sie Ihren Code auf Basis
des Problems strukturieren, das er lösen soll. Und dann können Sie Ihre Zeit damit verbringen,
über
das Problem nachzudenken, an dem Sie arbeiten müssen, anstatt gleich beim Schreiben des Codes im Sumpf der Implementierungsanforderungen zu versinken. Wenn Sie Objekte richtig einsetzen, erhal ten Sie Code, der
intuitiv zu schreiben sowie leicht zu lesen und zu ändern ist. Wie l\.fark über sein Problem nachdenkt
86
Wie l\.farks Navi über das Problem nachdenkt
87
Die 1\'lethoden von i\.Jarks Navigator-Klasse
88
Nutzen Sie das Gelernte, um eine einf.'lche Anwendung zu erstellen
89
i\lark hat eine Idee
90
i\hrk kann sein Problem mit Objekten lösen
91
Sie nutzen eine Klasse, um ein Objekt zu erstellen
92
'Venn Sie ein neues Objekt einer Klasse erstellen, ZJelfeseegenO StraßeAussch1ießenO StraßeEinschließen{) RouteBerechrwnO FahrzeitBerechnenO Entfemung8erechnen()
\
-..-<e .�,.,. fl�.Jo·,r«-•< den ,A.�I\l, e:'"' fiMn 4efi,5tcL
1\ft...,S:-e t:r.! J:1j«t de�"'...-�. defi,ie>as«, wie es behandelt werden soll
265
Eine Kaffeclviaschine ist auch ein Gerät
266
Um,vandeln funktioniert mit Objekten und Schnittstellen
267
Mit Dmvncasting ein Gerät wieder zu einer Kaffeemaschine machen
268
Upcasting und Downcasting funktionieren auch mit Schnittstellen
269
Es gibt nicht nur publie und private
273
ZugriflSmodifizierer ändern Geltungsbereiche
274
1\hnche Klassen sollten nicht instantiiert werden
277
Eine Kreuzung zwischen einer normalen Klasse und einer Schnittstelle
278
:Manche Klassen sollten nicht instantiiert werden
280
Eine abstrakte 1\.fcthode hat keinen Rumpf
281
Der DeacU}' Diamond of Death!
286
Polymorphie: ein Objekt in vielen fOrmen
289
XV
lnhaltsverzaichnis
Ennms und Au\'l1stun_sen Daten in Massen speichern Eigentlich tritt alles immer in Massen auf. Im wahren Leben wird man mit Daten nie in kleinen Fragmenten konfrontiert. Nein, sie begegnen Ihnen immer in
Massen, Bergen und Haufen.
Und Sie brauchen ziemlich leis
tungsfähige Werkzeuge, um sie zu organisieren. Genau das sind können Sie alle Daten
Aufllstungen. Mit diesen
speichern, sortieren und verwalten, die Ihr Programm durchforsten
muss. Sie können sich darauf konzentrieren, wie Ihr Programm mit den Daten arbeitet, und es den Auffislungen überlassen, sich für Sie u m die Daten selbst zu kümmern. Gelegentlich sind Strings nicht gut genug, Daten zu speichern
310
1\·lit Enumerationen können Sie erlaubte \Vertc aufzählen
311
J\·lit Emnns können Zahlen über Namen repräsentiert \Verden
312
wenn es danun geht, Kategorien
"-.\( puff! / I \\
'--
xvi
�
\'Oll
Wir könnten einen Kartenstapel über ein Array repräsentieren
:l/5
Die Arbeit mit Arrays ist nicht immer einfach
316
Listen erleichtern das Speichern von Sammlungen ... jeder Art
317
l,isten sind flexibler als Arrays
318
I,isten schrumpfen und wachsen dynamisch
321
List-Objekte können beliebige Typen speichern
322
Auflistungsinitialisierer funktionieren wie Objektinitialisierer
326
Erstellen wir eine Liste mit Enten
327
Listen sind leicht, aber SORTIEREN kann verzwickt sein
328
Zwei \Vege, Ihre Enten zu sortieren
329
Mit IComparer sagen Sie Ihren Listen, wie sie sortieren sollen
330
Erstellen Sie eine Instanz Ihrer Comparer-Klasse
331
IC�omparer kann komplexe Vergleiche durchH.ihren
332
Schlüssel und \Verte speichern Sie in \Vörterbüchern
335
Die Dictionary-Funktionalität im Überblick
3:J6
Schlüssel und \Vcrt können auch unterschiedliche Typen haben
337
Auch Sie können i\lcthoden überladen
34:1
Noch MEHR Auflishmgst}1len ...
35;)
Eine Queue ist FIFO- First-in-First-out
356
Ein Stack ist LIFO -·Last-in-First-out
357
Die Suche
Sie haben die Aufgabe, ein Adventure zu erstellen, in dem ein mächtiger Abenteurer von Level zu Level die tödlichs ten Feinde besiegt, Sie werden ein rundenbasiertes Spiel erstellen. Das bedeutet, dass erst der Spieler und dann die Gegner ihren Zug machen. Der Spieler kann sich bewegen oder angreifen, und dann erhältjeder Gegner die Möglich keit, sich zu bewegen und anzugreifen. Das Spiel geht so lange, bis der Spieler auf allen sieben Leveln seine Gegner besiegt hat oder stirbt.
36>Ja« beantworten müssen ...
@\)
@
Macht Sie der Gedanke, viel Code schreiben zu müssen, etwas nervös?
Sind Sie ein ausgebuffter C++- oder Java-Programmierer und nur auf der Suche nach einem Referenzbuch?
Sie haben
Angst, etwas Neues auszuprobieren? Sie
unterziehen sich lieber einer Wurzelbehandlung, als in einer Streifen-Karo-Kombination auf die Straße zu gehen? Sie sind überzeugt davon, dass ein Fachbuch nicht seriös sein kann, wenn C# vermenschlicht wird?
... dann ist dieses Buch nicht das richtige für Sie.
XXVIII
Einführung
Die Einflihrung
Wir wisseVt, was Sie gerade deVtkeVt. ))\Vie kann das ein ernsthaftes C#�Programmierbuch sein?« ))\Vas sollen al1 die Abbildungen?« »Kann ich auf diese \'\'eise wirklich lernen?«
UVtd wir wisseVt, was Ihr C.ehirn gerade deVtkt.
Ihr Gehirn lechzt nach Neuem. Es ist ständig dabei, Ihre Umgebung abzu suchen, und es war/ef auf etwas Ungewöhnliches. So ist es nun einmal gebaut, und es hilft Ihnen zu überleben. Heutzutage ist es weniger wahrscheinlich, dass Sie von einem Tiger verputzt werden. Aber Ihr Gehirn hält immer noch Ausschau. i\'Ian weiß ja nie.
Also, \Vas macht Ihr Gehirn mit all den gewöhnlichen, normalen Routine sachen, denen Sie begegnen? Es tut alles in seiner lviacht Stehende, damit es dadurch nicht bei seiner eigentlichen Arbeit gestört wird: Dinge zu erf.'lssen, die wirklich zvichti'g sind. Es gibt sich nicht damit ab, die lang,veiligen Sachen zu speichern, sondern lässt diese gar nicht erst durch den ))Dies-ist�oflCnsichtlich nicht-wichtig«-Filte1: \'Voher weiß Ihr Gehirn denn, was wichtig ist? Nehmen Sie an, Sie machen einen Tagesausflug und ein Tiger springt vor Ihnen aus dem Gebüsch: \Vas passiert dabei in Ihrem Kopf und Ihrem Körper? Neuronen feuern. Gefiihle werden angekurbelt. Chemische Substanl'ld he.f'U bei Ihnen funklioniert und ·was nicht. I'I "'lll !iiO!"''ipi; i l!i!!l " Sie es ah ht-et� Klt'h l a w sthr t�k. Probieren Sie neue \Vege aus. Immer langsam. Je mehr Sie verstehen,
Reden Sie drüber. Laut.
umso weniger müssen Sie auswendig
Sprechen aktiviert einen anderen Teil des Gehirns. \Venn Sie etwas verstehen oder Ihre Chancen verbessern wollen, sich später daran zu erinnern, sagen Sie es laut. Noch besser: Versuchen Sie es jemand laut zu erklären. Sie lernen dann schneller und haben \�elleicht Ideen, auf die Sie heim bloßen Lesen nie gekommen wären.
Lesen Sie nicht mu: Halten Sie inne und denken Sie lernen.
nach. \Venn das Buch Sie etwas fragt, springen Sie nicht einfach zur Antwort. Stellen Sie sich vor, dass Sie das wirklich jemandfrag/. Je gründlicher Sie Ihr Gehirn zum Nachdenken zwingen, umso größer ist die Chance, dass Sie lernen und behalten.
Hören Sie auf Ihr Gehirn.
Bearbeiten Sie die Übungen. Machen Sie selbst Notizen.
\·Vir haben sie entworfen, aber wenn wir sie auch für Sie lösen würden, wäre das, als würde jemand anderes Ihr Training fiir Sie absolvieren. Und sehen Sie sich die Übungen nidtt eürfoch nur an. Benutzen Sie einen Bleistift. Es deutet vieles darauf hin, dass körperliche Akti\�tät beim Lernen den Lerner� folg erhöhen kann.
®
Lesen Sie die Abschnitte »Es gibt keine dummen Fragen«.
Und zwar alle. Das sind keine Zusatzanmerkungen sie geltören zunt J(erninhalt! Überspringen Sie sie nicht. Lesen Sie dies als Letztes vor dem Schia· fengehen. Oder lesen Sie danach zumin· dest nichts Anspruchsvolles mehr.
Ein Teil des Lernprozesses (vor allem die Übertra� gung in das Langzeitgedächtnis) findet erst statt, nach dem Sie das Buch zur Seite gelegt haben. Ihr Gehirn braucht Zeit fiir sich, um weitere Verarbeihmg zu leisten. 'Venn Sie in dieser Zeit etwas Neues aufneh men, geht ein Teil dessen, was Sie gerade gelernt haben, verloren. Trinken Sie Wasser. Viel.
Ihr Gehirn arbeitet am besten in einem schönen Flüs� sigkeitsbad. Austrocknung (zu der es schon kommen kann, bevor Sie überhaupt Durst verspüren) beein trächtigt die kognitive Funktion.
®
Achten Sie darauf, Ihr Gehirn nicht zu überladen. 'Venn Sie merken, dass Sie etwas nur noch überflie gen oder dass Sie das gerade erst Gelesene ver gessen haben, ist es Zeit fiir eine Pause. Ab einem bestimmten Punkt lernen Sie nicht mehr schnellet; indem Sie mehr hineinzustopfen versuchen; das kann sogar den Lernprozess stören. Aber bitte mit Gefühl!
Ihr Gehirn muss wissen, dass es um etrvas H'i.chtiges geht. Lassen Sie sich in die Geschichten hineinzic� hen. Erfinden Sie eigene Bildunterschriften fiir die Fotos. Über einen schlechten Scherz zu stöhnen ist immer noch besset; als gar nichts zu fühlen. Schreiben Sie Software, massenhaft!
Programmieren lernt man nur auf eine 'Veise: indem man viel, viel Code schl'eibt. Das werden Sie das ganze Buch hindurch machen. Programmieren ist ein Handwerk. Gut darin wird man nur durch Übung. Und die werden wir Ihnen verschafi"'en: Alle Kapitel bieten Übungen, die Ihnen ein Problem zur Lösung au(�eben. Überspringen Sie diese nicht einfach - ein Großteil des Lernprozesses tritt beim Lösen der Übungen ein. 'Vir geben zu allen Übungen Lösungen an haben Sie keine Angst, in die Lösung zu schauen, wenn Sie hängen bleiben! (ß·Ian bleibt leicht mal an etwas ganz Kleinem hängen.) Aber probieren Sie, das Problem zu lösen, bevor Sie sich die Lösung ansehen. Sie sind hier
xxxlii
Wie man dieses Buch /Jenutzt
Was Sie für dieses �uch brauchen \Vir haben dieses Buch unter Verwendung von Visual Studio 2008 Express Edition geschrieben. Das heißt, dass wir C# 3.0 und das .NET Framework 3.5 vcnvenden. Als wir dieses Buch geschrieben haben, befand sich Visual Studio 2008 noch in der Beta-Phase. Veröffentlicht wurde es erst nach dem Druck der amerkani schen Ausgabe. Alle Übungen und Codefragmente funktionieren mit den Beta-Versionen von Visual Studio 2008 Express. Sie sollten auch mit der endgültigen Version funktionieren. 'Vir empfehlen Ihnen, sie von der :Microsoft-,Vebsitc herunterzuladen - Download und Gebrauch sind kostenlos. VISUAL STUDIO 2008 EXPRESS EINRICHTEN
•
Das Herunterladen und Installieren von Visual C# 2008 Express ist ein Kinderspiel. Hier ist der Link zur Download-Seite für die Visual Studio 2008 Express-Versionen:
http : //www . microsoft . com/germany/express/dmmload/default . aspx Achten Sie bei der Installation darauf, dass Sie alle Optionen auswählen.
..
0MSO.'i fl<pre
IJbpr�ulbrc.y """"'* '"'".en T•l W 9'oft Sllvet�gt.tRunUme (Oown!itdg.-15&: 1.4 MB)
r�.cro.dt Sil''"'lif! 1st eh »ehe> &ov..ur·M:f.In Kr eir� u;-/Q>s..Oe O Wel:v0i1��1'"1iJ. CU/orn.>Ö