Click here to load reader

Microsoft Visual C# 2010 - Das Entwicklerbuch · PDF fileInhaltsverzeichnis . 7 Imperative Programmierung in C# 112 Daten und Datentypen 112 Literale und Variablen 112 Operatoren und

  • View
    213

  • Download
    0

Embed Size (px)

Text of Microsoft Visual C# 2010 - Das Entwicklerbuch · PDF fileInhaltsverzeichnis . 7 Imperative...

  • Dirk Louis, Shinja Strasser, Thorsten Kansy

    MicrosoftVisual C# 2010 -Das Entwicklerbuch

    MicrosoftPress

  • InhaltsverzeichnisEinleitung 27

    Zielgruppe 28Aufbau des Buchs 28Die Beispielsammlung zu diesem Buch 29Die Visual Studio 2010-Edition auf der beiliegenden Buch-DVD 29Korrekturen und Kommentare 30

    Teil A - Einfhrung in .NET 4.0 und Visual C# 2010 31

    1 Das .NET Framework 33Historie 34Bausteine des .NET Framework 35

    Common Language Infrastructure 35Common Language Runtime 35Common Intermediate Language 36Just-In-Time-Compiler 37

    Assemblys 38Ausfhrungsmodell fr Assemblys 40

    2 Visual Studio 2010 und Visual C# 2010 43Visual Studio 44

    Geschichte 44Visual Studio 2010, .NET Framework 4.0 und C# 4.0 45Arbeiten in der Entwicklungsumgebung 45

    Die Projektverwaltung 52bersicht 52Projektmappen 53Stertprojekte, Verweise und Projektabhngigkeiten 57Eigene Projektvorlagen 59

    Der Code-Editor 59Kleine Annehmlichkeiten 60IntelliSense 61using-Smarttag 63Umschlieung 64Codeausschnitte 64Umgestaltung 66

  • Inhaltsverzeichnis

    Erstellung 68MSBuild 68Build-Konfigurationen 69

    Konfiguration 70Umgebungseinstellungen 70Extras/Optionen 70Externe Tools einrichten 72

    Fensterverwaltung 73Die Andock-Hilfe 73Die Pin-Nadel 74Der IDE-Navigator 74

    Navigation 75Suchen 75Zur Definition wechseln 77Klassenansicht und Objektkatalog 77Aufrufhierarchie 77

    Hilfe 78bersicht 78Lokal oder Online 79Die Online-Hilfe 80Die lokale Hilfe 82

    3 Die ersten Programme 85Konsolenanwendungen 86Windows Forms-Anwendungen 89

    4 Stilkonventionen 93Bezeichner 94Konventionen 95Blcke 97

    Teil B - C#-Grundlagen 99

    5 Anatomie eines C#-Programms 101Programmaufbau 102

    Klassen 103Eintrittspunkt Main() 104

    using-Direktive und Framework-Klassen 106Ein- und Ausgabe 106Kommentare 108

    Dateien und Assemblys 109Klassen und Dateien 109Dateien und Assemblys 110

  • Inhaltsverzeichnis . 7

    Imperative Programmierung in C# 112Daten und Datentypen 112Literale und Variablen 112Operatoren und Ausdrcke 113Anweisungen 113Funktionen (Methoden) 115

    Objektorientierte Programmierung in C# 116Wie sind OOP-Objekte beschaffen? 117Objekte und Klassen 118Die Klasse als Zentrum der objektorientierten Programmierung 121Konzepte, die auf der Klasse aufbauen 125Die Klasse als Funktionensammlung 130

    6 Variablen, Daten und Typen 131Das C#-Datenmodell 132

    Datenreprsentation 132Typisierung 132Wert- und Verweistypen 133Erweiterbarkeit 136

    Literale 136Variablen 139

    Definition 139Initialisierung 140Eindeutige Zuweisung 141Gltigkeitsbereiche 142

    Konstanten 142Typen: Primitive Typen 143

    Derbool-Typ 144Ganzzahlige Typen 145Gleitkommatypen 147Zeichen 149Der decimal-Typ 150

    Typen: Definierbare Typen 150Typen: Strings 152Typumwandlung und Boxing 153

    Implizite Typumwandlungen 153Explizite Typumwandlungen 154Boxing und Unboxing 155

    7 Operatoren und Ausdrcke 157Operatoren und Ausdrcke 158

    Klassifizierung nach Operanden 158Ausdrcke 159

  • Inhaltsverzeichnis

    Auswertungsreihenfolge 159Vorrang der Operatoren 160Assoziativitt der Operatoren 161Operanden 162Klammerung 162

    Nebeneffekte und andere Fallstricke 162Die arithmetischen Operatoren 165

    Division und Modulo 165Inkrement und Dekrement 166

    Die Zuweisungsoperatoren 167Die relationalen Operatoren 168Die logischen Operatoren 169Die Bit-Operatoren 172Die Operatoren fr die Typidentifizierung und -Umwandlung 175

    Typidentifizierung 175Typumwandlung 177

    Sonstige Operatoren 178Datenzugriff 178

    checked und unchecked 179Der new-Operator 179Der Bedingungsoperator ?: 179Der ??-Operator 180Operatoren fr nicht gesicherten Code 180

    8 Ablaufsteuerung 181Verzweigungen 182

    Die einfache if-Anweisung 182Die if...eise-Verzweigung 184iL.else-Ketten und -Verschachtelungen 185Die switch-Verzweigung 187

    Schleifen 190Die while-Schleife 191Die do...while-Schleife 193Die for-Schleife 195Die foreach-Schleife fr Arrays und Auflistungen 196

    Sprunganweisungen 197Die continue-An Weisung 198Die break-Anweisung 198Die goto-Anweisung 199

    9 Arrays, Enumerationen und Strukturen 201Arrays 202

    Definition und Erzeugung 202Initialisierungslisten 205

  • Inhaltsverzeichnis .

    System. Array 205Mehrdimensionale Arrays 214Arrays von Arrays 218

    Enumerationen 220Definition 220Verwendung 221Enumerationen und switch 222Die Klasse System.Enum 223

    Strukturen 224Definition 224Verwendung 225Unterschiede zwischen Strukturen und Klassen 226

    Teil C - Objektorientierte Programmierung in C# 227

    10 Klassen 229Die Klassendefinition 230

    Zugriff auf Klasse steuern 231Zugriff auf Member steuern 231Spezielle Klassen 233Partielle Klassen 234

    Konstanten 235Felder 236

    Definition 236Instanzfelder 237Statische Felder 238

    Methoden 242Allgemeines 242Instanzmethoden und this 245Statische Methoden 247Datenaustausch 248Rekursion 256berladung 257

    Eigenschaften 260Konstruktoren 264

    Klassen ohne selbst definierten Konstruktor 266Der Standardkonstruktor 266berladene Konstruktoren 266Statische Konstruktoren 267

    Destruktoren 269Aufruf 269Eigener Destruktor 270

    Verschachtelte Typdefinitionen 272

  • 10 Inhaltsverzeichnis

    11 Schnittstellen 275Vertragsbasierte Programmierung 276

    Modell 1: schnittstellengesttzte Methoden 277Modell 2: Schnittstellen als Labels fr Klassen 278

    Schnittstellen definieren 279Schnittstellen-Member 280Schnittstellenvererbung 280

    Schnittstellen implementieren 281Die Dokumentation ist wichtig (IComparable-Beispiel) 282Schnittstellen-Member verbergen 284

    Namenskonflikte in Schnittstellen lsen 286

    12 Vererbung, Polymorphie und Klassen-Design 289Vererbung 290

    Das Prinzip der Vererbung 290Geerbte Member 294Die oberste Basisklasse Object 304Vererbung ber Assembly- und Sprachgrenzen hinweg 305

    Polymorphie 309Grundprinzip und Implementierung 309Dynamische und statische Bindung 312Generische Programmierung 319Typidentifizierung zur Laufzeit 324Abstrakte Klassen 326

    Der Klassen-Designer 328Klassendiagramme erzeugen 328Klassendiagramme bearbeiten 329Projektdokumentationen erstellen 332Analysespezifikationen umsetzen 332Projekte pflegen 333

    13 Indexer, Enumeratoren und Iteratoren 335Indexer 336

    Syntax 336Beispiel 337

    Enumeratoren 338Funktionsweise 339Implementierung 340

    Iteratoren 345foreach-Untersttzung durch Iteratoren 345Klassen mit mehreren (benannten) Iteratoren 347Eigene Lsungen, die auf IEnumerable basieren 348

  • Inhaltsverzeichnis . . .11

    14 Operatorenberladung 351Syntax 352Regeln 353

    berladbare Operatoren 353Regeln fr die berladung 354

    Fallbeispiel: Unre Inkrement- und Dekrement-Operatoren 355Fallbeispiel: Binre mathematische Operatoren 355Fallbeispiel: Relationale Operatoren 357Fallbeispiel: Konvertierungsoperatoren 359Fallbeispiel: true und false 360

    15 Ausnahmebehandlung 361Konzeption und Zielsetzung 362

    Kein Weg zurck 364Behandeln von Ausnahmen 364

    Das try...catch-Grundgerst 365Ausnahmen abfangen 365Mehrere catch-Handler 367Ausnahmen als Informationstrger 369

    Die finally-Klausel 369finally-Block 369using-Anweisung 371Ausnahmen auslsen 372

    Ausnahmen weiterleiten 372Innere Ausnahmen 372

    Die vordefinierten Ausnahmeklassen 373Member der Klasse Exception 374CLR-generierte Ausnahmen 375

    Eigene Ausnahmeklassen schreiben 376

    Teil D - Fortgeschrittenes C# 379

    16 Werttypen und Verweistypen 381Zwischen C++ und Smalltalk 382

    Das Wertemodell 382Das Verweismodell 383Umsetzung in C++ und Smalltalk 383

    DerC#-Weg 384Speicherreservierung und Lebensdauer 385Objekte kopieren 393Objekte vergleichen 399Boxing und Unboxing 409Wert- und Referenzparameter 410

  • Inhaltsverzeichnis

    Nullfhigkeit 411Nullable 412

    Zusammenfassung 413

    17 Namespaces, Gltigkeitsbereiche und Zugriffsschutz 415Namespaces 416

    Namespaces definieren 416Namespaces erweitern 417Typen aus Namespaces verwenden 418using-Direktive 418using-Aliase 420Konfliktlsung mit Namespaces 422

    Gltigkeitsbereiche 423bersicht 423Verdeckung 423Auflsung der Verdeckung 424

    Zugriffsmodifizierer im berblick 425

    18 Delegaten und Ereignisse 427Delegaten 428

    Definition 428Instanziierung 429Aufruf 432Delegaten als Methoden-Hooks 432Delegaten mit Aufruflisten 434

    Ereignisse 436Das Prinzip 436Ereignisse verffentlichen 437Ereignisse abonnieren 440Ereignis-Argumente 441

    19 Attribute 445Vordefinierte Attribute 446Benutzerdefinierte Attribute 448

    Benutzerdefinierte Attribut-Klasse erstellen 448Komponente erstellen, die mit der Attribut-Klasse arbeitet 449Attribut-Klasse verwenden 451

    20 C#-Generika 453Einfhrung in Generika 454Generische Typen 458

    Generische Klassen 459Generische Strukturen 462

  • Inhaltsverzeichnis 13

    Generische Schnittstellen 462Generische Delegaten und Prdikate 463Kovarianz und Kontravarianz 465

    Generische Methoden 467Aufruf 467Swap 468

    Einschrnkungen fr Typparameter 469Ungebundene Typen 469Einschrnkungen 470Vererbung 473

    Null, default und die Problematik der Werttypen 473Das Problem der Standardwerte 474Das Problem der Leere 475

    Ein Blick hinter die Kulissen 477Typisierung mit Werttypen 478Typisierung mit Verweistypen 479

    21 XML-basierte Dokumentierung 481Einfhrung 482XML-Dokumentationskommentare 483

    Die empfohlenen Tags 484Eigene Tags definieren 487Beispiele 487

    XML-Dokument erzeugen 490Lesbare Dokumentationsseiten 490

    Transformation mit ndoc 490Transformation mit eigenem XSLT-Code 490

    Teil E - Wichtige .NET-Klassen 499

    22 Strings und regulre Ausdrcke 501String-Erzeugung 502String-Llterale 503

    Escapesequenzen [email protected] 503Zei

Search related