1. Trang chủ
  2. » Công Nghệ Thông Tin

Weitere Bücher von O''''Reilly zu C# ppt

735 359 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Weitere Bücher von O'Reilly zu C#
Tác giả Lars Schulten
Trường học University of Example
Chuyên ngành Computer Science
Định dạng
Số trang 735
Dung lượng 25,94 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 2

ü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 sechs Jahre alt und setzt gern eine sehr kritische J\·Iiene auf, wenn Papa

die Spielerei mit dem Computer als Arbeit bezeichnet

V

Trang 3

vi

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 TM 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

Trang 4

Der Inhalt (im i1herhlicR)

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 Griff

C#-\Vorkshop 3: bwaders Anhang A: Die Top-5 der 77mnen, dü es nicht ins Buclt gesduifjl habm

Der Inhalt Getzt ausfUhr lieh)

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?

\Vir wissen, \Nas Ihr Gehirn denkt fdetakognition

·Machen Sie sich Ihr Hirn untertan

\Vas Sie flir dieses Buch brauchen Lies mich

Die Fachgutachter Danksagungen

x xviii xxix

xx xi x.:xxiii xxxiv

XX X\' x.xxvi XXX\'11

vil

Trang 5

Inhaltsverzeichnis

VIII

1

Yr9clukt1V mit C#

Sie möchten Programme so richtig schnell erstellen können?

Mit C# halten Sie eine mächtige Programmiersprache und ein wertvolles Werkzeug in Ihren Händen Dank der Visual 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, Ihre Arbeit zu erledigen, statt sich zu merken, welcher der Methodenparameter den Namen eines Buttons angibt und welcher sein Label Klingt das vielversprechend? Blättern Sie um, damit wir mit dem Programmieren beginnen können

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,

bevor Sie beginnen, Ihr Programm zu erstellen 5

Em>iio'-'.•·,,.,_.,.,, ".l'�p·J-'"''"'�

\Vas Sie in Visual Studio tun

\Vas Visual Studio f'tir Sie macht

8

8 K<md•on

NET Framework·

· Lösungen

L .;;a

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

Erstellen Sie ein Diagramm für Ihre Daten, damit Ihre Anwendung darauf zugreifen kann 26 Ihre Kartendaten in die Datenbank einfilgen 28 Formular und Datenobjekte über eine Datenquelle verbinden

Dem Formular datenbankgesteuerte Steuerelemente hinzufiigcn Gute Programme sind intuitiv zu verwenden

IHRE Anwendung in eine Anwendung fiir ALLE verwandeln Ihren Nutzern die Anwendung geben

Sie sind noch NICHT fertig: Testen Sie Ihre Anwendung

30

32 3+

37

38

39 Sie haben eine vollständige, datengesteuerte Anwendung erstellt 40

Trang 6

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 IDE 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 C#-Code schreiben Haben Sie das Programmieren einmal im Griff, gibt es nichts mehr, was Ihre Programme nicht tun könnten

\Venn Sie Dinge in der IDE ändern, ändern Sie auch Ihren Code 50

54-Sie können den Einstiegspunkt Ihres Programms ändern Zwei Klassen können im gleichen Namensraum sein Ihre Programme nutzen Variablen, um mit Daten zu arbeiten C# nutzt vertraute mathematische Symbole

Schleifen fUhren eine Aktion immer wieder aus Zeit, mit dem Programmieren zu beginnen if/clse-Anwcisungen f.illen Entscheidungen Bedingungen aut:�tellen und prüfen

Jtdt• I•M, "·�·-� Sit t>� •-to�' Pr �

Trang 7

Bevor Sie ein Programm erstellen, Oberlegen Sie sich am besten, welches Problem Ihr Programm lösen soll Deswegen sind 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

1\ft ,S:-e t:r.! J:1j«t de�"' -�

defi,ie<tn �'! ,J.;,-, tl�e{b·.Je,, �� }-,

- -<e �,., fl�.Jo·,r«-•< den ,A.�I\l, e:'"'

fiMn 4efi,5tcL \

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\hrk kann sein Problem mit Objekten lösen 9 1 Sie nutzen eine Klasse, um ein Objekt zu erstellen 92 'Venn Sie ein neues Objekt einer Klasse erstellen,

bezeichnet man dieses als Instanz der Klasse Eine bessere Lösung dank Objekten!

Eine Instanz nutzt Fcldet; um Dinge festzuhalten

93

94

98

Gute Klassen- und l\Iethodennamen machen Code inhlitiver 102 Geben Sie Ihren Klassen eine natürliche Struktur 10,1- Klassendiagramme helfen Ihnen, Ihre Klassen zu organisieren 106 Eine Klasse für die Arbeit mit ein paar Typen erstellen

Ein Projekt ftir die.Jungs erstellen Erstellen Sie ein Formular zur Interaktion mit den.Jungs Die Objektinitialisierung kann noch einfacher sein Ein paar Ideen zum Entwurf intuitiver Klassen

Trang 8

Hund f±do;

1Jrpen und I\eterenzen

Datentyp, Datenbank, Lieutenant Commander Data all das ist wichtiges Zeug Ohne Daten sind Ihre Programme nutzlos Sie brauchen Informationen von Ihren Anwendern und nutzen diese, urn andere Informationen nachzuschlagen oder neue Informationen zu produzieren, die Sie dann wieder an Ihre User zurückliefern Eigentlich schließt fast alles, was Sie beim Programmieren tun, auf die eine oder andere Weise Arbeit mit Daten ein ln diesem Kapitel werden Sie alles über die Datentypen

von C# lernen, erfahren, wie Sie in Ihrem Programm mit Daten arbeiten, und Sie werden sogar auf einige schmutzige Geheimnisse über Objekte stoßen (psst auch Objekte sind Daten)

Der Typ einer Variablen bestimmt, welche Art Daten sie speichert 124 Eine Variable ist wie ein Daten-To-Go-Becher 126

Auch eine Zahl der richtigen Größe können Sie nicht einfach irgendeiner Variablen zuweisen 128

\Vandcln Sie einen zu großen \Vert um, passt C# ihn automatisch an 129 Einige Umwandlungen macht C# automatisch

Beim Aufi·uf einer �viethode müssen die Variablen

130

�dit Referenzvariablen auf Objekte verweisen 138 Referenzen sind wie Etiketten fiir Ihr Objekt 139 Gibt es keine Referenzen mehr, holt die i\Hillabfuhr Ihr Objekt 140

142

Hund lucky = new-Hund();

l\·Iehrere Referenzen und ihre Nebenwirkungen Z\\'ei Referenzen bedeuten Z\VEI i\Iöglichkeitcn,

1·18

fido = new Hundi);

Ein Sonderfall: Arrays Arrays können auch einen Haufen Referenzvariablen speichern 149

\ Viiikommen beim Sandwich-Discount vom Strammen �·lax Objekte nutzen Referenzen, um miteinander zu reden

\Vohin noch kein Objekt gekommen ist

150

152

153

xi

Trang 9

Ein Tag beim Rennen

Tim, Tom und Jan verbringen ihre Zeit mit Vorliebe auf der Rennbahn, sind es allerdings leid, dabei ständig ihr gesamtes Geld zu verlieren Sie sollen den Dreien einen Simulator aufbauen, der ihnen hilft, den Sieger zu bestim­men, bevor sie ihr Geld setzen Und wenn Sie dabei gute Arbeit leisten, erhalten Sie Ihren Anteil an ihren Profiten

Die Spezifikation: Erstellen Sie eine Rennbahn-Simulation

Trang 10

1(<tpselung;

Alles zu zeigen ist nicht immer richtig

Denken Sie auch, dass man manches nicht gleich allen zeigen muss?

Manchmal geht es Ihren Objekten ebenfalls so Genau so, wie Sie nicht jeden Ihr Tagebuch oder Ihre Kontoauszüge lesen lassen, lassen gute Objekte andere Objekte nicht in ihre Felder blicken in diesem Kapitel werden Sie die Macht der Kapselung

kennenlernen Sie werden die Daten Ihrer Objekte privat machen und Methoden hinzufügen, die schützen, wie auf diese Daten zugegriffen wird

Kathrin ist Evcnt-I\'Ianagerin

"'as der Kostenrechner macht Kathrins Testlauf

Jede Option sollte einzeln berechnet werden Objekte werden leicht unbeabsichtigt missbraucht Kapsdung bedeutet, dass man Daten in einer Klasse privat hält Steuern Sie den Zugriff auf Felder und :Methoden mit Kapsdung Aber ist das Feld \VahrerName WIRKLICH geschützt?

Auf private Felder und :Methoden kann nur aus der Klasse selbst heraus zugegriffen werden Ein paar Gedanken zur Kapsdung von Klassen Kapsdung hält Ihre Daten rein

Eigenschaften vereinfachen die Kapselung

\Vas i�t, wenn v rir den Futtermultiplikator ändern möchten? 196 Initialisieren Sie private Felder mit einem Konstruktor 197

Attzahl att frockett_er

Penot!et1 I "> I Abel\d1

lue•I2H

proPmotd

lxkiUllver Abe•dl

txk!rJslve Vekotatlol!elt

tl5 t pro Penolt*S'Ot Pavsehalel

NotiHale Vekoratlolltlt

11.5'0 t pro Perso�t* SO t Pavtchalel

xlli

Trang 11

lnhaltsverzeicl1nis

xiv

Vererbunt

Der Stammbaum Ihres Objekts

Es gibt Momente, da WILL man wie die eigenen Eltern sein

Ist Ihnen schon einmal ein Objekt Ober den Weg gelaufen, das fast genau das macht, was Ihr Objekt machen soll? Und haben Sie sich gewünscht, Sie bräuchten einfach nur ein paar Dinge zu ändern und das Objekt wäre perfekt? Genau das ist der Grund dafür, dass Vererbung eins der mächtigsten und wichtigsten Konzepte in C# ist Bevor Sie mit diesem Kapitel durch sind, werden Sie gelernt haben, wie Sie von einer Klasse ableiten, um ihr Verhalten zu bekommen, dabei aber die Flexibilität

bewahren, Änderungen an diesem Verhalten vorzunehmen Sie vermeiden doppelten Code, mo­dellieren die wahre Weit präziser nach und erhalten Code, der leichter zu warten ist

Kathrin plant auch Geburtstagsfeiern 'Vir brauchen eine Geburtstagsfeier-Klasse Eine Sache noch eine Gebühr von 100 € hinzufUgen Nutzen Ihre Klassen Vererbung,

müssen Sie Ihren Code nur einmal schreiben Erstellen Sie Ihr Klassenmodell, indem Sie allgemein beginnen und immer spezifischer werden

'Vie \Yürden Sie einen Zoo-Simulator entwerfen?

Vermeiden Sie mit Vererbung doppelten Code in Unterklassen

206

207

213 2H

215

216

217 Unterschiedliche Tiere machen unterschiedliche Geräusche 2 18 Denken Sie daran, wie die Tiere gruppiert sind 2 19

Jede Unterklasse en:\•eitert Ihre Basisklasse 22 1 Erweiterung geben Sie mit einem Doppelpunkt an 222 Wir wissen, dass Vererbung den Unterklassen die Felder,

Eigenschaften und l\·Iethoden der Basisklasse hinzufügt 225 Eine Unterklasse kann Methoden überschreiben, um geerbte

�vlethoden zu ändern oder zu ersetzen Überall dort, \YO Sie die Basisklasse ven:\'enden können, können Sie stattdesseen eine Unterklasse vetwenden Basisklassenzugriff über das Schlüsselwort base Hat die Basisklasse einen Konstruktm;

braucht ihn die Unterklasse auch Jetzt können Sie die Arbeit ftir Kathrin abschließen!

Bauen Sie eine Bienenstockverwaltung Erst bauen Sie das Grundsystem Erweitern Sie die Bienenverwaltung mit Vererbung

226

227

232 23:l

234

239

240

245

Trang 12

Sc1n1tt:st:el1en und Qbstr&kte KJqssen

Klassen, die Versprechen halten

Taten sagen mehr als Worte

Gelegentlich müssen Sie Ihre Objekte auf Basis dessen gruppieren, was sie tun können, und nicht auf Basis der Klassen, von denen sie erben Dann kommen Schnittstellen ins Spiel - diese ermöglichen Ihnen, mit jeder Klasse zu arbeiten, die bestimmte Aufgaben erledigen kann Aber mit großer Macht geht eine große Verantwortung einher: Jede Klasse, die eine Schnittstelle implementiert, muss versprechen,

all ihre Verpflichtungen zu erfüllen oder der Compiler tritt Ihnen vors Schienbein, Verstanden()? lf Vet•erl111ng

Schnittstellen definieren Sie mit dem Schlüsselwort interface Jetzt die Klasse Nektar,Vache erstellen, die beide Aufgaben erfüllt Klassen, die Schnittstellen implementieren, müssen ALLE i•vfethoden der Schnittstelle einschließen

Sannnein Sie Erfahrung im Umgang mit Schnittstellen Eine Schnittstelle referenzieren

Schnittstellenreferenzen funktionieren wie Objektreferenzen :Mit »is« ermitteln, ob eine Klasse eine Schnittstelle implementiert

262 Eine Schnittstelle kann von einer anderen erben 263 Eine RoboBiene kann arbeiten und braucht keinen Honig 264

»is« sagt, welchen Typ Ihr Objekt hat, >>as«, wie es behandelt werden soll 265

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

1\hnche Klassen sollten nicht instantiiert werden 277 Eine Kreuzung zwischen einer normalen Klasse und einer Schnittstelle 278 :Manche Klassen sollten nicht instantiiert werden

Eine abstrakte 1\.fcthode hat keinen Rumpf Der DeacU}' Diamond of Death!

Polymorphie: ein Objekt in vielen fOrmen

Trang 13

lnhaltsverzaichnis

xvi

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 Aufllstungen Mit diesen können Sie alle Daten 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 um die Daten selbst zu kümmern

310

311

312 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

List-Objekte können beliebige Typen speichern 322 Auflistungsinitialisierer funktionieren wie Objektinitialisierer 326

Listen sind leicht, aber SORTIEREN kann verzwickt sein 328

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

Schlüssel und \Vcrt können auch unterschiedliche Typen haben Auch Sie können i\lcthoden überladen

Noch MEHR Auflishmgst}1len

Eine Queue ist FIFO- First-in-First-out Ein Stack ist LIFO -·Last-in-First-out

3:J6

337 34:1 35;)

356

357

Trang 14

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

Die Spezifikation: Erstellen Sie ein Adventure -Spiel Der Spaß hingt gerade erst an!

P\ayer 5 Bat

Trang 15

Inhaltsverzeichnis

D&te'ien lesen und schre'iben

Speichere das Array, rette die Welt Gelegentlich zahlt es sich aus, wenn man Dinge festhält Bisher hatten alle Ihre Programme nur ein Kurzzeitgedächtnis Sie starten, laufen eine Weile und enden dann Manchmal reicht das nicht aus, insbesondere wenn Sie mit wichtigen Daten arbeiten Sie müssen Ihre Arbeit speichern können in diesem Kapitel werden wir uns ansehen, wie man Daten in einer Datei speichert und diese Informationen dann wieder aus einer Datei einliest Sie werden etwas über die .NET-Stream-Kiassen lernen und sich mit den Mysterien Hexadezimal und Binär auseinandersetzen

C# nutzt Strcams, um Daten zu lesen und zu schreiben 386 Unterschiedliche Streams lesen und schreiben andere Dinge 387 Ein FileStream schreibt Bytes in eine Datei 388 Zum Lesen und Schreiben braucht man zwei Objekte 393

Öffi1en Sie mit eingebauten Objekten Standarddialoge 397

l\{it den eingebauten Klassen File und Directory können Sie mit Dateien und Verzeichnissen arbeiten 400 Öfll1en und speichern Sie Dateien mit Dateidialogen 403 IDisposable sorgt dafih; dass Ihre Objekte entsorgt werden 405 Vermeiden Sie Dateisystemfehler mit using-Anweisungcn 406 Beim Schreiben von Dateien muss man in der Regel

'Vählcn Sie Ihre Optionen mit einer switch-Anweisung Ein überladener KartenstapeiQ-Konstruktm;

referenziert, ebenfalls serialisiert 419 Mit Serialisierung können Sie ein ganzes Objekt auf einmal

.NET wandelt Text automatisch in Unicode um 425 Mit byte-Arrays können Daten verschoben \Verden 426 Binäre Daten schreiben Sie mit einem Binaty,Vriter 427 Sie können scrialisierte Dateien auch manuell lesen und schreiben 429 StrcamRcader und StreanüVriter reichen vollkommen aus 433

Trang 16

Except'l9n-B&ndl'lnb'

Fehler-Prävention

Programmierer sind keine Feuerlöscher Sie haben sich auf die Hinterbeine gesetzt, einen Haufen trockener Handbücher und ein paar ansprechende Von Kopf bis Fuß­ Bücher durchgearbeitet und haben den Gipfelpunkt Ihres Berufsstands erreicht: Meisterpro­grammierer Aber Sie erhalten immer noch Beschwerden, weil ihr Programm abs!Orzt oder

sich nicht so verhält, wie es sich verhalten soll Nichts kann einem die Programmierstimmung

so verhageln wie die Forderung, einen seltsamen Fehler zu beheben aber mit Exception­Handllng kann sich Ihr Code um Probleme kümmern, die aufkommen Und Sie können auf diese Probleme sogar reagieren und dafür sorgen, dass das Programm weiterläuft

1\le, ist das &le heute Eine Touchronde

wiir M g<llll nndere Nummer Es ist wohl

mo.l wieder Gll der Zeit, den Entschuldi­

Brians Entschuldigungen müssen mobil werden Löst Ihr Programm eine Exccption aus, erzeugt NET ein Exception-Objekt Brians Code machte etwas Unerwartetes Alle Exccption-Objekte erben von Exception Der Dcbugger hilft Ihnen,

Exceptions in Ihrem Code aufzuspüren und zu verhindern Nutzen Sie den Debuggcr, um herauszufinden,

was gcnau das Problem in der Entschuldigungsverv.:altung ist Och ncc, der Code hat immer noch Probleme

Exceptions mit try und catch behandeln

\Vas passiert, wenn eine l\'lethode gefahrlieh ist?

Folgen Sie try/catch mit dem Debugger Nutzen Sie finally; \Venn Sie Code haben, der Hvl�viER ausgefiihrt werden soll Nutzen Sie das Exception-Objekt,

um Informationen zum Problem zu erhalten 1Jehrere T)1len \'Oll Exceptions mit mehreren Catch-Biöcken abfangen Eine Klasse löst eine Exception aus, eine andere fangt sie ab Bienen brauchen eine HonigLcerException

using gibt Ihnen try und finally kostenlos Implementieren Sie IDi')posable fiir eigene Aufräumarbeiten Der SCHLii' JMSTE eatch-Biock: Kommentare

Vorübergehende Lösungen sind okay {vorübergehend) Einige einfache Gedanken zum Exception-Handling finally verschafft ßrian seinen Urlaub

+10 4H +16

448 H9 4.10 4.\3

Trang 17

Inhaltsverzeichnis

11

XX

Events und Delegcttes

Was Ihr Code macht, wenn Sie nicht gucken Ihre Objekte beginnen, für sich selbst zu denken

Sie können nicht immer kontrollieren, was Ihre Objekte machen Manche Dinge passieren einfach Und wenn sie passieren, sollten Ihre Objekte schlau genug sein, auf alles eine Antwort zu wissen, was eintreten könnte Darum geht es bei Events (oder Ereignissen) Ein Objekt veröffentlicht ein Event, andere Objekte abonnieren es, und alle arbeiten zusammen, damit die Dinge im Fluss bleiben Das geht so lange gut, bis zu viele Objekte auf dasselbe Event reagieren Dann werden sich Callbacks als praktisch erweisen

-�•föchten auch Sie, dass Ihre Objekte für sich selbst denken? 484 Aber woher 'Neiß ein Objekt, dass es reagieren soll? 484 Wenn Events eintreten lauschen Objekte 485 Ein Objekt setzt ein Event ab, andere lauschen darauf 'l8G

Alle FOrmulare, die Sie bisher erstellt haben, nutzen Events 498 Event-Sender mit Event-Empf.ingern verbinden 500 Ein Delegate VERTRITT die eigentliche lviethode 501

Wer.ftr- tliese11 Ball far.�-1:

Der Wedel'" ka�n den Ylr�kd

�r.d Bdie E:r.tferr.".�.3 in die

t'r al/ gesthlage11 - wde be�:al{ige" (tfo ist �·n als 3S) t/ g r<-1V t 'r

Werfer,Bal1Fangen(70, 90)

Trang 18

F\.iickbl!ck und V9tsc1q_u

Wissen, Macht und cooles Zeug erstellen Nur Lernen bringt nichts, man muss das Gelernte auch ANWENDEN

Erst wenn Sie tatsächlich Code schreiben, wissen Sie, ob Sie die schwereren C#-Konzepte wirk­ lich verstanden haben in diesem Kapitel werden wir einige neue Feinheiten kennenlernen: Timer

und die Verarbeitung von Collections mit LINQ (um nur ein paar zu nennen) Außerdem werden wir eine richtig komplexe Anwendung aufbauen und damit prüfen, ob Sie alles, was Sie in den vorangegangenen Kapiteln gelernt haben, auch wirklich beherrschen Schnallen Sie sich an jetzt stürzen wir uns i n den Aufbau cooler Software

Lebe11 u11d Sterbe11 ei11er �lul\te

Du hast einen langen \Veg hinter dir, Baby

\Vir sind Imker geworden Die Architektur des Bienenstock-Simulators Den Bienenstock-Simulator erstellen

516

517

518

519

Das Hauptformular bringt die \Velt ans LaufcnO 544

"'ir können die "'clt nutzen, um Informationen zu erhalten 545

Im Hintergrund nutzt 'firner ein Dclcgate 54 7

Eine Auflistung sammelt DATEN LINQ vcrcinf.'lcht die Arbeit mit den Daten

in Auflistungen und Datenbanken

555

557

XXI

Trang 19

hinzufOgen, oder sogar direkt auf Ihr Formular malen Alles beginnt mit dem Graphics - Objekt,

Bitmaps und dem Willen, sich mit dem grafischen Status quo nicht zufriedenzugeben

Sie haben die ganze Zeit Steuerelemente ftir die Interaktion mit Ihren Programmen vetwendet 564 Formular-Steuerelemente sind auch nur Objekte 565

Contmls sind ftir grafisch angezeigte Elemente gut geeignet 5 70 Ihr erstes animiertes Steuerelement erstellen 5 73 Ihre Steuerelemente müssen disposcQ anbieten 5 77 :Mit UscrControl können Steuerelemente leicht erstellt werden 578 Fügen Sie dem Projekt die ncucn Formulare hinzu 582 Schauen wir uns zunächst die Leishmgsprobleme an 590 Bitmaps skalieren Sie über ein Graphics-Objekt 592 Ihre Grafikressourcen werden als Bitmap�Objekt gespeichert 593 Nutzen Sie System.Drawing, um Ihre

:Mit Graphics ein Bild auf ein Formular zeichnen 596 Gmphics kann unser Transparenzproblem lösen 601

Das Neuzeichnen von Formularen und Steuerelementen aus der Nähe betrachtet 605 Double-BuflCring macht Ihre Animation glatter 608 Double-Buffering ist in Formulare und Steuerelemente eingebaut 609 Mit einem Graphics·Objekt und einem Event-Handler drucken 61 + PrintDocument nutzt den Drucken-Dialog und die Druckvorschau GIS

Trang 20

NG

Captain Amazing, das Super-Objekt von Objekthausen,

Ihre letzte Chance, etwas zu TUN der Destrnktor Ihres Objekts 628

DisposeQ arbeitet mit using, Dcstruktoren

Dcstruktoren können von der Stabilität abhängen 632 Lassen Sie ein Objekt sich selbst in DisposeQ serialisieren 633

\Verte werden kopiert, Referenzen werden zugewiesen 638 Structs sind \Vertt)1)en, Objekte sind Referenztypen 639

En·\'eitenmgsmethoden ftigen BESTEHENDEN Klassen

xxill

Trang 21

Vorbei sind die Zeiten, in denen Sie Tage, sogar Wochen programmieren konnten, ohne sich mit

Massen von Daten befassen zu müssen Heute dreht sich alles um Daten Und häufig muss man sich sogar mit Daten aus unterschiedlichen Quellen herumschlagen und in unter­ schiedlichen Formaten Datenbanken, XML, Auflistungen aus anderen Programmen all das ist heute die Aufgabe eines guten C#-Programmierers Und mit UNQ lässt sich all das bewältigen Mit UNQ können Sie Ihre Daten nicht bloß auf leichte, intuitive Weise abfragen, sondern auch

gruppieren und Daten von unterschiedlichen Quellen zusammenfUhren

UNQkann Daten aus mehreren Quellen ziehen 656

.NET-Auflistungen sind bereits flir L INQeingerichtet 657

I.INQist einfhch, Ihre Abfragen sind das nicht immer 659

UNQkann Ergebnisse zu Gruppen zusammenfassen 667

Zwei Auflistungen in einer Abfi·age mit join kombinieren 671

Fragen Sie Sternback und die Papierf.'lbrik mit einemjoin ab 678

Trang 22

Invaders

In diesem Workshop werden Sie einer der beliebtesten,

am meisten bewunderten und am häufigsten kopierten Ikonen der Videospielgeschichte die Ehre erweisen, ei­nem Spiel, das keiner weiteren Vorstellung bedarf Es ist Zeit, ein Invaders-Spiel zu schreiben

Der Urvater aller Videospiele Und es ist immer noch mehr zu tun

682

701

Trang 23

Der Spaß fängt gerade erst an!

Wir haben Ihnen viele wunderbare Werkzeuge gezeigt, mil denen Sie mit C# richtig

mächtige Software aufbauen können Aber es war unmöglich, alle Werkzeuge, Tech­nologien und Techniken in dieses Buch einzuschließen - so viele Seilen hat es einfach nicht Wir mussten einige sehr harte Entscheidungen in Bezug darauf treffen, was wir mit aufnehmen und was wir weglassen Hier sind einige Themen, die es nicht geschafft haben Aber auch wenn wir zu ihnen nicht gekommen sind, denken wir trotzdem, dass sie

wichtig und nützlich sind, und möchten Ihnen einen kleinen Ausblick auf sie bieten

3 Einige unserer Lieblingskomponenten in der Toolbox 708

\Vusstcn Sie, dass Sie mit C# und dem NET Framework 714

� ftleSystemWatcher 1

xxvi

IJjjjj performancecounter 1

"' '

l$tr � 2f.f7�3 A>""l))ef ii3%7601i t.Tl""-"ll i' �t Mr�!2W4d:mi

.I

cu-.p:;nf 1:40

Trang 24

xxvii

Trang 25

Wie man dieses ßuc/J benutzt

Für wet1 ist dieses �uch?

'·Venn Sie alle folgenden Fragen nüt >Ua« beantworten können

Möchten Sie C# lernen?

Basteln Sie gern herum - lernen Sie, indem Sie etwas anwenden, statt einfach nur zu lesen?

® Ziehen Sie anregende Partyunterhaltungen trockenen,

öden, akademischen Vorlesungen vor?

dann ist dieses Buch etwas für Sie

Wer sollte eher die Finger von dlese!fl �uch lassen?

XXVIII

'Venn Sie eine dieser Fragen mit >>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

Einführung

Trang 26

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?«

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 Substan<,m

durchfluten Sie

Und so weiß Ihr Gehirn:

Dies muss wichtig sein! Vergiss es nicht!

Aber nun stellen Sie sich vor, Sie sind zu Hause oder in einer

Bibliothek In einer sicheren, warmen, tigerfreien Zone Sie lernen

Bereiten sich auf eine Prüfung vor Oder Sie versuchen, irgendein

schwieriges Thema zu lernen, von dem Ihr Chef glaubt, Sie bräueil­

ten dafür eine \Voche oder höchstens zehn Tage

Da ist nur ein Problem: Ihr Gehirn versucht Ihnen einen großen

Gefa11en zu tun Es versucht dafür zu sorgen, dass diese Qffinsichtlich

unwichtigen Inhalte nicht knappe Ressourcen verstopfen Ressour­

cen, die besser dafiir verwendet würden, die wirklich wichtigen Dinge

zu speichern \'Vie Tiget: \Vie die Gefahren des Feuers Oder dass

Sie nie wieder in Shorts snowboarden sollten

Und es gibt keine einfache �döglichkeit, Ihrem Gehirn zu sagen:

)>Hey, Gehirn, vielen Dank, aber egal, wie langweilig dieses Buch

auch ist und wie klein der Ausschlag auf meiner emotionalen Richterskala

gerade ist, ich will wirklich, dass du diesen Kram behältst.«

Sie sind hier xxix

Trang 27

Wie man dieses Buch benutzt

W:tr stellen uns unseren Leser als einen aktiv Lernenden vor

Also, was Ist nötig, damit Sie etwas lernen? Erst einmal müssen Sie es aufnehmen und dann dafür sorgen, dass Sie es nicht wieder vergessen Es geht nicht darum, Fakten

in Ihren Kopf zu schieben Nach den neuasten Forschungsergebnissen der Kogniti­onswissenschaft, der Neurobiologie und der Lernpsychologie gehört zum Lernen viel mehr als nur Text auf einer Seite Wir wissen, was Ihr Gehirn anmacht

Einige der Lernprinzipien dieser Buchreihe:

Bilder einsetzen An Bilder kann man sich viel besser erinnern als an Worte allein und lernt so viel effektiver (bis zu 89% Verbesserung bei Abrufbarkeits- und Lerntransferstudien) Außerdem werden die Dinge dadurch verständlicher Text

in oder neben die Grafiken setzen, auf die sie sich beziehen, anstatt darunter oder auf eine andere Seite Oie Leser werden auf den Bildinhalt bezogene Prob­ leme dann mit doppelt so hoher Wahrscheinlichkeit lösen können

Verwenden Sie einen gesprächsorientierten Stil mit persönlicher Ansprache Nach neueren Untersuchungen haben Studenten nach dem lernen bei Tests bis

zu 40% besser abgeschnitten, wenn der Inhalt den Leser direkt in der ersten Person und im lockeren Stil angesprochen hat statt in einem formalen Ton Halten Sie keinen Vortrag, sondern erzählen Sie Geschichten Benutzen Sie eine zwanglose Sprache Nehmen Sie sich selbst

nicht zu ernst Würden Sie einer anregenden Unterhaltung beim Abendessen mehr

Aufmerksamkeit schenken oder einem Vortrag?

Bringen Sie den Lernenden dazu, intensiver nachzudenken Mit anderen Wor­

ten: Falls Sie nicht aktiv Ihre Neuronen strapazieren, passiert in Ihrem Gehirn nicht

viel Ein Leser muss motiviert, begeistert und neugierig sein und dazu angeregt

werden, Probfeme zu lösen, Schlüsse zu ziehen und sich neu es Wissen anzueignen

Und dafür brauchen Sie Herausforderungen, Übungen, zum Nachdenken anre­

gende Fragen und Tätigkeiten, die beide Seiten des Gehirns und mehrere Sinne

einbeziehen

Ziehen Sie die Aufmerksamkelt des Lesers auf sich- und behalten Sie sie Wir alle haben schon Erfah­ rungen dieser Art gemacht: ))Ich will das wirklich lernen, aber ich kann einfach nicht Ober Seite 1 hinaus wach bleiben.« Ihr Gehirn passt auf, wenn Dinge ungewöhnlich, interessant, merkwürdig, auffällig, unerwartet sind

Trang 28

\Venn Sie wirklich lernen möchten, und zwar schneller und nachhaltige•; dann schenken

Sie Ihrer Aufinerksamkcit Aufinerksamkeit Denken Sie darüber nach, wie Sie denken

Lernen Sie, wie Sie lernen

Die meisten von uns haben in ihrerjugend keine Kurse in :Metakognition oder Lernthe­

orie gehabt Es wurde von uns awartet, dass wir lernen, aber nur selten wurde uns auch

beigebracht, wie man lernt

\Vir nehmen aber an, dass Sie wirklich etwas über C# lernen möchten, wenn Sie dieses

Buch in den Händen halten Und wahrscheinlich möchten Sie nicht viel Zeit aufivenden

Und Sie wollen sich an das ninnern, was Sie lesen, und es anwenden können Und deshalb

müssen Sie es verstehen \Venn Sie so viel wie möglich von diesem Buch profitieren wollen

oder von irgendeinem anderen Buch oder einer anderen Lernerf:1.hrung, übernehmen

Sie Verantwortung für Ihr Gehirn Ihr Gehirn im Zusammenhang mit

diesem Lernstoff

Der Trick besteht darin, Ihr Gehirn dazu zu bringen, neuen Lernstoff

als etwas wirklich \Vichtiges anzusehen Als entscheidend für Ihr \'Vohl­

befinden So wichtig wie ein Tige1: Andernfalls stecken Sie i n einem

dauernden Kampf, in dem Ihr Gehirn sein Bestes gibt, um die neuen

Inhalte davon abzuhalten, hängen zu bleiben

Wie bringen Sie also Ihr Gehirn dazu, C#

für so wichtig zu halten wie einen Tiger?

Da gibt es den langsamen, ermüdenden \Veg oder den schnelleren, effektiveren

Wie könnte ich mein Gehirn wohl dazu kriegen, diesen Kram zu behalten

\Veg Der langsame \Veg geht über bloße \'Viederholung Natürlich ist Ihnen klar, dass Sie lernen und sich sogar an die langweiligsten Themen erinnern können, wenn Sie sich die gleiche Sache immer wieder einhämmern \Venn Sie nur oft genug wiederholen, sagt Ihr Gehirn: >>Er hat zwar nicht das Gf}iihl) dass das wichtig ist, aber er sieht sich dieselbe Sache immer und immer wiederan - dann muss sie wohl wichtig sein.«

Der schnellere \Veg besteht darin, alles zu tun, was die Gehirnaktivität e1·höht, vor allem verschiedene Arten von Gehirnaktivität Eine wichtige Rolle dabei spielen die auf der vorhergehenden Seite erwähnten Dinge - a1les Dinge, die nach\\'eislich helfen, dass Ihr Gehirnfiir Sie arbeitet So hat sich z.B in Untersuchungen gezeigt: \Venn \'VÖrter in den Abbildungen stehen, die sie beschreiben (und nicht irgend wo anders auf der Seite, z.B in einer Bildunterschrift oder im Text), versucht Ihr Gehirn herauszufinden, wie die \Vörter und das Bild zusammenhängen, und dadurch feuern mehr Neuronen Und je mehr Neuronen feuern, umso größer ist die Chance, dass Ihr Gehirn mitbekommt: Bei dieser Sache lohnt es sich aufzupassen und \�elleicht auch, sich daran zu erinnern

Ein lockerer Sprachstil hilft, denn i\�Ienschen tendieren zu höherer Aufinerksamkeit, wenn ihnen bewusst ist, dass sie ein Gespräch ftihren - man erwartet dann ja von ihnen, dass sie dem Gespr�ich folgen und sich beteiligen Das Erstaunliche daran ist: Es ist Ihrem Gehirn ziemlich egal, dass die >>Unterhaltung« zwischen Ihnen und einem Buch stattfindet! 'Venn der Schreibstil dagegen formal und trocken ist, hat Ihr Gehirn den gleichen Eindruck wie bei einem Vortrag, bei dem

in einem Raum passive Zuhörer sitzen Nicht nötig, wach zu bleiben

Aber Abbildungen und ein lockerer Sprachstil sind erst der Anfang

Sie sind hier xxxi

Trang 29

Wie man dieses Buch benutzt

Pas habe.-, WIR geta.-,:

'Vir haben Bilde1· venvendet, weil Ihr Gehirn auf visuelle Eindrücke eingestellt ist, nicht

auf Texl Soweit es Ihr Gehirn betriffi, sagt ein Bild wirklich mehr als 1.024-'Vorte Und

dort, wo Text und Abbildungen zusammen,Nirken, haben wir den Text in die Bilder ein�

gebettet, denn Ihr Gehirn arbeitet besser, \Yenn der Text innerhalb der Sache steht, auf die er

sich bezieht, und nicht in einer Bildunterschrill oder irgendwo vergraben im Text

'\'Ir haben Reclwulmrz eingesetzt, d.h dasselbe auf unterschiedliche Art und mit verschiedenen lVIe­

dientypen ausgedrückt, damit Sie es über mehrere Sinne aufnehmen Das erhöht die Chance, dass die

Inhalte an mehr als nur einer SteHe in Ihrem Gehirn verankert werden

'Vir haben Konzepte und Bilder in tmerwm·teter 'V eise eingesetzt, weil Ihr Gehirn auf Neuigkeiten

programmiert ist Und wir haben Bilder und Ideen mit zumindest ellvas emotionalem Charakter ver­

wendet, weil Ihr Gehirn darauf eingestellt ist, auf die Biochemie von Geftihlen zu achten An alles,

was ein Gffiihl in Ihnen auslöst, können Sie sich mit höherer 'Vahrscheinlichkeit erinnern, selbst wenn

dieses Geftihl nicht mehr ist als ein bisscheu Belustigwrg, iiberraschuug ode1· Intel'esse

\Vir haben einen umga�rgsspracldiclren Stil mit direkter Anrede benutzt, denn Ihr Gehirn ist von

Natur aus aufmerksamet; wenn es Sie in einer Unterhaltung wähnt als \Venn es davon ausgeht, dass

Sie passiv einer Präsentation zuhören �· sogar dann, wenn Sie lesen

'Vir haben mehr als 80 Aktivitiiten ftir Sie vorgesehen, denn Ihr Gehirn lernt und behält von Natur

aus besser, wenn Sie Dinge hm, als wenn Sie nur darüber lesen Und wir haben die Übungen zwar

anspruchsvoll, aber doch lösbar gemacht, denn so ist es den meisten Lesern am liebsten

'Vir haben mehrere u:utm·schied/iclte Lernstile eingesetzt, denn vielleicht bevorzugen Sie ein

Schritt�ftir-Schrilt-Vorgehen, währendjemand anders erst einmal den groben Zusammenhang

verstehen und ein Dritter einfach nur ein Codebeispiel sehen möchte Aber ganz abgesehen von den

jeweiligen Lernvorlieben profitiertjeder davon, wenn er die gleichen Inhalte in unterschiedlicher Form

präsentiert bekommt

'Vir liefern Inhalte fiir beide Seiten llu·es GeldJ·ns, denn je mehr Sie von Ihrem Gehirn einsetzen,

umso \Vahrscheinlicher werden Sie lernen und behalten und umso länger bleiben Sie konzentriert

'Venn Sie mit einer Seite des Gehirns arbeiten, bedeutet das häufig, dass sich die andere Seite des

Gehirns austuhen kann; so können Sie über einen längeren Zeitraum produktiver lernen

Und wir haben Geschichten und Übungen aufgenommen, die nw/u· als er'nen BUckwiukel

rep1·äsentiereu, denn Ihr Gehirn lernt von Natur aus intensiver, \Yenn es gezwungen ist, selbst zu

analysieren und zu beurteilen

'Vir haben Het·artsfoJ'derungen eingefügt: in Form von Übungen und indem wir F1·agen stcl�

len, auf die es nicht immer eine eindeutige Ant\vort gibt, denn Ihr Gehirn ist darauf eingestellt, zu

lernen und sich zu etinnern, wenn es an etwas arbeiten muss Überlegen Sie: Ihren KörjJer bekommen

Sie ja auch nicht in Form, \Venn Sie nur die Leute auf dem Sportplatz beobachtm Aber wir haben

unser Bestes getan, um daftir zu sorgen, dass Sie - ·wenn Sie schon hart arbeiten - an den richtigen

Dingen arbeiten Dass Sie 11iclrt eineil eiuzigen Deudrr'ten da·rauf ve·rscltweudeu, ein seinver

verständliches Beispiel zu verarbeiten oder einen sclnvierigen, mit Fachbegriffen gespickten oder

übermäßig gedrängten Text zu analysieren

Wir haben Menschen eingesetzt In Geschichten, Beispielen, Bildern usw - denn Sie sind ein

?viensch Und Ihr Gehirn schenkt 1\1C11schen mehr Aufmerksamkeit als Dingm

xxxii Einführung

Punkt für Punkt

Trang 30

Ul'td das köl'tl'tel't SIE tul't, u� sich Ihr C.ehirl't Ul'ttertal't zu �achel'l

So, wir haben unseren Teil der Arbeit geleistet Der Rest liegt bei Ihnen Diese Tipps sind ein Anfang; hören Sie

S'thtJeid g auf Ihr Gehirn und finden Sie heraus, was

"'lll!iiO!"''iipi;l!i!!l" Sie es a ft1/h •e dies ilvs l>l'ld he.f'UI'I bei Ihnen funklioniert und ·was nicht

w h t-et� Klt'hlsthrat�k Probieren Sie neue \Vege aus

Immer langsam Je mehr Sie verstehen,

umso weniger müssen Sie auswendig

lernen

Lesen Sie nicht mu: Halten Sie inne und denken Sie

nach \Venn das Buch Sie etwas fragt, springen Sie

nicht einfach zur Antwort Stellen Sie sich vor, dass

Sie das wirklich jemand frag/ Je gründlicher Sie Ihr

Gehirn zum Nachdenken zwingen, umso größer ist

die Chance, dass Sie lernen und behalten

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 nid tt 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

Reden Sie drüber Laut

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

Hören Sie auf Ihr Gehirn

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

Trang 31

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 IJb<�•Y für Virual studio 2000 (Oown!n,adgrOße: 311 M!l)

c:.a f.Ufl E>pr�ulbrc.y """"'* '"'".en T•l W 9'<<'>"rlte<> '1<9�011 Stv:k>­

Pfoc\JtdohJ7."-��- Wem S<3 d<t /{SI)N E>prH<lhc.y tidt hstalle<m, 1.: -"" S d�

PT00Jtd.:>ll.IT'fft�-.$ffioNCirllna"""�-0Mimaofl 50L sa:Ve WOS E><meu E<"-lio<l C�ß.$)_(OoomloadqrtTI"" 40MB},

SC,ol �-er E>:?e.• ,;;.d n \'I=J St<rlo o-teqiert -.J b:el� onrd� <krt­

IP.!terru,{.,·o.n:JSer.- -Dot.ro".� f\nl�t�

0Mkro>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 OOe

Wel:v0i1��1'"1i<nr>J CU<h de lnsl;o!L"""'""" Sltt:rl.jl r.;ffi.,or, S-e de Sf•«O#·

lt<qypM.t-&crq ""· s<-,-er!jJ: , ,.d e>/orn.>Ö<d'l ,,lt""<ie<t 'i!t.!;ere frf<lfC",31:>:�6�

� Weitere lnfonmtionen finden Sie in du Infod•t••·

Bedel'lker �ie bitte, dass Sie, wenh Sie eir.e altere Versloh Vor Visval Stvdiol C<f oder dem Nf;T Frame>Jork ver>�eh­dth rn�·sser.l i1\ diesem Bt.�th a�.tf Themen rl:oßer werde�"�• die roii: lh\"er Versioh hitht kompatibel sihd Das OF-Team bei i\1itrosoft hat der &prathe eihige uemlith toole Feat•res hi"""gefögt Wir werdeh Sie dcn·auf hil'lweiseh1 werm wir t;"ber eil'IS dieser Themel'l spyethel'l Wehl'l Sie eihe äH:eYe VeYsiol"' veYWfhdt:h1 m�·sseh Sie sieh also daY�ber im K'lareh seih} dass es ih diesem Bvth Code sibt1 der bei lhheh hitht r.hktiohiert

• Laden Sie das Installationspaket für Visual C# 2008 Express Edition Achten Sie darauf, dass Sie eine

vollständige Installation durchführen Das sollte Ihnen alles liefern, was Sie benötigen: die IDE (die wir Ihnen

im Folgenden erklären), SQL Server Express und das NET Framework 3.5

• Nach der Installation haben Sie im Start-Menü eine neue Option: Microsoft Visua/ C# 2008 Express Edition

Klicken Sie darauf, um die IDE zu öffnen Jetzt sind Sie für dieses Buch bereit

xxxiv Einf{illrung

Trang 32

lies ""ich

Dies ist ein Lehrbuch, keine Referenz 'Vir haben mit Absicht alles weggelassen, was

Ihnen dabei in die Qpere kommen könnte, das zu lernen, was auch immer wir an einem

bestimmten Punkt gerade behandeln Und wenn Sie das Buch das erste �vial durchhahen,

müssen Sie wieder am Anfang beginnen, weil das Buch Annahmen darüber macht, was

Sie bereits gesehen und gelernt haben

Die Aktivitäten sind NICHT optional

Die Übungen und Aktivitäten sind keine Zusätze Sie sind ein wesentlicher Bestandteil

des Ruchs Einige sollen Ihr Gedächtnis unterstützen, andere Ihr Verständnis wecken

und wieder andere werden Ihnen helfen, das Gelernte anzuwenden ÜberspJ·iugen Sie

die Übungen uicht Die Kreuzworträtsel sind das Einzige, was Sie nicht tun müssen,

sind aber eine gute ß·löglichkeit, Ihrem Hirn eine Chance zu geben, über die \·Vörter und

Begriffe, die Sie gelernt haben, in einem anderen Kontext nachzudenken

Die Redundanz ist beabsichtigt und wichtig

Eins der Dinge, das ein Von Kopf bis Fuß-Buch so anders macht, ist, dass wir möchten,

dass Sie die Sache wirklich verstehen Und wir möchten, dass Sie, wenn Sie das Buch

durchgearbeitet haben, behalten, was Sie gelernt haben Die meisten Referenzbücher

zielen nicht auf Behalten und Erinnern ab, aber in diesem Buch geht es ums Lernen,

deswegen werden Ihnen manche Konzepte auch mehrfach begegnen

Machen Sie alle Obungen!

Als wir dieses Buch schrieben, sind wir von einer wichtigen Voraussetzung ausgegangen:

dass Sie \\�rklich lernen möchten, \\�e man in C# programmiert \Vir wissen also, dass

Sie sich die Hände von Anfang an beim \·Vühlen in Code schmutzig machen wollen

\Vir bieten Ihnen eine ?\·I enge ß·Iöglichkeiten, Ihre Fähigkeiten zu schärfen, indem wir

in jedes Kapitel Übungen einschtießen Einige haben \\�r mit »Tim Sie d&s!« beschriftet

- \Venn Sie darauf stoßen, bedeutet es, dass wir Sie durch alle Schritte zur Lösung eines

bestimmten Problems leiten Stoßen Sie aber auf das Übung-Logo mit den Turnschu­

hen, haben wir Ihnen die Lösung eines großen Happens des Problems überlassen und

präsentieren Ihnen anschließend die Lösung, die wir gefunden haben Haben Sie keine

Angst, einen Blick auf die Lösung zu werfen -das ist kein Mogeln! Aber am meisten

lernen Sie, wenn Sie versuchen, das Problem erst selbst zu lösen

Außerdem haben wir den Quellcode für die Lösungen aller Übungen ins 'Veb gestellt,

damit Sie ihn herunterladen können Sie finden ihn unter:

http : / /examples orei l l y de/german_examples/hfcsharpger/

Zu den Kopfnuss-Obungen gibt es keine Lösungen

Für manche dieser Übungen gibt es keine richtige Lösung, und bei anderen gehört es

zum I ,ernprozess der Kopfnuss-Aktivitäten, dass Sie selbst überlegen, ob und wann Ihre

Lösungen richtig sind Bei einigen Kopfnuss-Übungen finden Sie Hinweise, die Sie in die

richtige Richtung lenken

Sie sollte" /IL-L-f' »Syitu" Sie lh<e" BleistiH«­

/Ikbvitlite" ",;-t: at"i"'

Spitzen Sie n!l'en Bleistift

Sie sind hier XXXV

Trang 33

Das GutachterteaJn

Pie Fachgutachter

Als wir dieses Buch schrieben, wies es einen Haufen Fehler, Haken, Probleme,

Tippfehler und schreckliche arithmetische Fehler auf Na gut, ganz so schlimm

war es nicht Trotzdem sind wir dankbar für die Arbeit, die unsere Fachgutachter

fiir dieses Buch geleistet haben Ohne dieses ausgezeichnete Gutachterteam wäre

das Buch mit Fehlern gedruckt worden (einschließlich ein bis zwei großer)

Vor allem möchten wirjoe Albahari ftlr die ausführliche technische Beratung

dankeiL Er hat uns bei einigen wichtigen Dingen berichtigt 'Väre er nicht

gewesen, müssten Sie falsche Dinge lernen Außerdem wollten wir Lisa Kellnet'

danken - das ist das dritte Buch, das sie für uns korrigiert hat, und das hatte ent­

scheidenden Einfluss auf die Lesbarkeit des endgültigen Produkts Danke Lisa!

Besonderen Dank auch anJay Hilyard und Daniel iGnnaer, die viele unserer

Fehler au��cspürt und korrigiert haben, und an Aayam Singh, der tatsächlich

alle Übungen gemacht hat, bevor wir sie repariert und ihre Fehler behoben

haben Aayam, du bist wirklich engagiert Danke!

xxxvi Einfiillfung

Nitht ab�ebildet (ohd hotulern ebehso ornwf'tehd), Way"e ß,adhey, Dave Mordoth ohd ß,;d�eHe Jolie Lahders

l<'rishna Pala

Trang 34

v�u•ksagungen

Un.serern Lektol':

\Vir möchten unserem Lcktm; Brett McLaughlin, für seine

Arbeit an diesem Buch danken Beim Aufhau hat er uns sehr geholfen,

und die Comic-Idee in Kapitel 14 war ganz allein seine Idee \'Vir

meinen, dass das richtig gut geworden ist Danke Brett!

Dem O'Reilly-Team:

� BreH MtLaoghlin

Lou Barr ist eine wunderbare Grafikerin, die sich bei diesem Buch selbst übertroffen hat Sie hat unglaublich viele Stunden aufgewandt und einige ziemlich umwerfende Darstellungen gestaltet \Venn Sie in diesem Buch auf etwas stoßen, das fantastisch aussieht, sollten Sie ihr (und ihren verrückten InDesign-Künsten) danken Sie hat alle �vlonstcr- und Alicn­

Grafikcn für die \Vorkshops sowie den vollständigen Comic gemacht

Vielen Dank Lau! Du bist unsere Heidin, und es ist großartig, mit dir zu arbeiten

Es gibt so viele A.fenschcn bei O'Reilly, denen wir danken wollen - hofiCntlich vergessen wir niemanden Das Head First-Team ist klasse -Lande Petrycki, Catherine No-lan, Sanders Kleinfeld (der beste Hersteller aller Zeiten!), Caitrin McCullough und Keith McNamara Besonderen Dank an Colleen Gorman filr ihr aufmerksames Sprach­

korrektorat, Ron Bilodeau, der seine Zeit und Preflighting­

Expertise zur Verfiigung gestellt hat, sowie Adam Witw-er, der das Buch einer letzten Qualitätssicherung unterzog Sie alle halfen, das Buch in Rekordzeit aus der Produktion in den Druck

zu bekommen Und wie immer: \Vir lieben Mary Treseler und können es nicht erwarten, wieder mit ihr zu arbeiten! Und ein großes Hallo an all unsere anderen Freunde und Lektoren, Andy Oram, Isabel KWikle und Mib:e Hendrickson

Und wenn Sie dieses Buch jetzt lesen, können Sie dem ten i\'Iarketing-Team der Branche danken: Marsee Henon, Sara Peyton, Mary Rotntan,Jessica Boyd und den cmde­

bes-ren Leuten in Sebastopol

Sio sincl hier xxxvii

Trang 36

Grafische Anwendungen in

Musst keine Angst haben, Mama

Mit Visual Studio und C# lernst

du das Programmieren so schnell,

dass dir nie wieder Schmorgerichte

anbrennen

Sie möchten Programme so richtig schnell erstellen können?

Mit C# halten Sie eine mächtige Programmiersprache und ein wertvolles Werkzeug in

Ihren Händen Dank der Vlsua! Studio IDE müssen Sie nie wieder Stunden damit vergeu­

den, 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, Ihre Arbeit zu erledigen,

staU sich zu merken, welcher der Methodenparameter den Namen eines Bultans angibt und

welcher sein Label Klingt das vielversprechend? Bläl!ern Sie um, damit wir mit dem Pro­

grammieren beginnen können

Hier fängt ein neues Kapitel an 1

Trang 37

C# macht es I/wen /eicht

Warurvt � C"* lerMt1 solltet1

C# und die Visual Studio IDE machen es Ihnen leicht, beim Schreiben

von Code zur Sache zu kommen und Ihren Code schnell :lU schreiben

\Venn Sie mit C# arbeiten, ist die IDE Ihr bester Freund und ständiger

Begleiter

Die IDf' - oder Visval $-{;.dio

l•te9-tJ:' rated Develop"e"t t'"viro""'"t - ist ei• withti�e< Bes-l:a•dteil der Arbeit Mit C# Sie ist ei• Pro�ra"'"'' das lh•e•

Uas s111d d1e U111ge, die die lU' für Sie automatisiert

Jedes i\Jal, wenn Sie anfangen, ein Programm zu schreiben, oder einfach nur einen

Button in ein Formular platzieren wollen, verlangt Ihr Programm eine "1·Iasse sich

stets wiederholenden Codes

r rivate '>o.id Initiali�tCC·c-ponent()

uslng syst�l collections.G<?.r.eric;

����� ;����� : wi.ndo•s.rorr_s;

n�:-·e:op�ce Wir,cto·osAFplicaüonl

{

fvlit einer Sprache wie C#, die speziell auf die '·Vindows­

Programmierung ausgerichtet ist, und der Visual Studio IDE

können Sie sich sofort mit dem befassen, was Ihr Programm

Trang 38

c� und Visual Studio IVE erleichtern

Ihnen eine Menge Vinge

\Venn Sie C# und Visual Studio einsetzen, erhalten Sie all diese wunderbaren

Features, ohne dass Sie dazu zusätzliche Arbeit leisten müssen Beide zusammen

ermöglichen Ihnen:

0 Anwendungen SCHNELL aufzubauen lviit C# ist das Erstellen von Programmen ein

Kinderspiel Die Sprache ist mächtig und leicht zu erlernen, und die Visual Studio IDE erledigt

eine i\'Icngc Arbeit automatisch fiir Sie Die stupiden Programmieraufgaben können Sie der IDE

überlassen und sich selbst auf das konzentrieren, was Ihr Code bewirken soll

Q Gut aussehende Benutzerschnittstellen zu gestalten Der H:mn-Designer in der Visual

Studio IDE ist eins der am einfachsten zu benutzenden Design-\Verkzcugc, die es gibt Er macht

so viel fiir Sie, dass Sie die Entwicklung umwerfend aussehender Benutzerschnittstellen als einen

der erfüllendstell Teile der Entwicklung von C#-Anwendungen empfinden werden Sie werden

voll ausgestattete professionelle Programme aufbauen, ohne Stunden damit zuzubringen, eine

grafische Benutzerschnittstelle vollständig von null an aufzubauen

E) Datenbanken zu erstellen und mit ihnen zu Interagieren Die IDE schließt

eine einfache Schnittstelle zum Aufbau von Datenbanken ein und arbeitet nahtlos mit

SQL Server Express sowie einer Reihe weiterer beliebter Datenbanksysteme zusammen

() Sich darauf zu konzentrieren, Ihre TATSÄCHLICHEN Probleme zu lösen Die

IDE macht eine �{enge für Sie, aber Sie steuern immer noch, was Sie mit C# aufbauen Die

IDE ermöglicht Ihnen einfach, sich auf Ihr Programm, Ihre Arbeit (oder Ihr Vergnügen) und

Ihre Kunden zu konzentrieren Sie selbst erledigt dagegen die gesamte Kernarbeit wie:

* das Nachhalten Ihrer Projekte,

* dafür zu sorgen, dass es einfach ist, den Code für Ihr Projekt zu bearbeiten,

* das Festhalten von Projektressourcen wie Grafiken, Audiodateien und Symbolen,

* die Verwaltung und die Interaktion mit Datenbanken

All das heißt, dass Sie die ganze Zeit, die Sie ansonsten mit diesen Routineaufgaben verbrin­

gen müssten, in die Ennvicklung von Killeranwendungen stecken können

� Ir KV: -z e we -c:len Sie sehen, was �enau wi'r damit meihen

Sie sind hier > 3

Trang 39

Der Chef braueilt Ihre Hilfe

Verhelfen Sie Ihre� Chef zu eine� papierlosen &üro

Die Papierfabrik Objekthausen hat gerade einen ncucn Direktor eingestellt Er liebt das \Vandern,

KafiCe und die Natur und er ist entschlossen, zur Rettung des Regenwaids beizutragen Er will

sein Büro papierlos macheiL Den Anfang will er bei seinem Adressbuch machen Er ist gerade auf

dem \Veg nach Davos, wo er das \Vochenende beim Skifahren ausspannen will Aber er erwartet,

dass bei seiner Rückkehr ein neucs Adressbuchprogramm fertig ist Andernfalls sagen wir es so

der alte Direktor \vird bei derJobsuche nicht mehr so einsam sein

Trang 40

�rit1get1 Sie die �edOrft1isse Ihres Kut1det1 it1 Erfahrut1g,

bevor Sie begit1t1et1, Ihr ProgratVttVt :zu erstellet'!

Bevor wir anfangen können, die Adressbuchanwendung - oder überhaupt irgendeine Anwendung zu

schreiben, müssen wir uns einen Augenblick Zeit nehmen und darüber nachdenken, wet• sie ver­

wenden 'Wird und was die Anwendung fiir den Nutzer 1nachen muss

<!) Der Direktor muss das Adrcssbuchprograrnm im Büro, aber auch auf seinem

Laptop ausfiihren können Er braucht ein Installationsprogranun, das sicher­

stellt, dass alle erforderlichen Dateien auf beide Rechner kommen

� Der Direkt:or r.öthte das Progra"'"'

"" seihe"' Arbeitsplatz ""d sei"e"' Laptop a.stöhreh fin /nsl:.allat",ons­

progra"'"' ist also """"'giinglith

® Der Vertrieb der Papierfabrik Objekthausen hätte ebenfalls gern Zugriff auf

das Adressbuch des Direktors Dort können seine Daten dann eingesetzt wer­

den, um Rundschreiben zu versenden und Hinweise auf Kunden abzufragen,

um den Papierverkauf anzukurbeln

Nach :�vieinung des Direktors wäre eine Datenbank der beste \Veg, um allen

in der Firma Zugriff auf die Daten zu geben und dennoch nur eine Kopie

aller Kontaktinformationen pflegen zu müssen

Sie sind hior � 5

Ngày đăng: 22/03/2014, 17:20

TỪ KHÓA LIÊN QUAN

w