Guide to C# and object orientation:
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
London [u.a.]
Springer
2002
|
Ausgabe: | 1. publ. |
Schriftenreihe: | Springer professional computing
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XXVII, 476 S. Ill. |
ISBN: | 1852335815 |
Internformat
MARC
LEADER | 00000nam a22000008c 4500 | ||
---|---|---|---|
001 | BV014200800 | ||
003 | DE-604 | ||
005 | 20030827 | ||
007 | t | ||
008 | 020312s2002 gw a||| |||| 00||| eng d | ||
016 | 7 | |a 963894536 |2 DE-101 | |
020 | |a 1852335815 |9 1-85233-581-5 | ||
035 | |a (OCoLC)248466968 | ||
035 | |a (DE-599)BVBBV014200800 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a eng | |
044 | |a gw |c DE | ||
049 | |a DE-92 |a DE-20 |a DE-573 |a DE-11 | ||
050 | 0 | |a QA76.73.C154 | |
082 | 0 | |a 005.13/3 |2 21 | |
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a ST 260 |0 (DE-625)143632: |2 rvk | ||
100 | 1 | |a Hunt, John |d 1964- |e Verfasser |0 (DE-588)115568409 |4 aut | |
245 | 1 | 0 | |a Guide to C# and object orientation |c John Hunt |
246 | 1 | 3 | |a C and object orientation |
250 | |a 1. publ. | ||
264 | 1 | |a London [u.a.] |b Springer |c 2002 | |
300 | |a XXVII, 476 S. |b Ill. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a Springer professional computing | |
650 | 4 | |a C# (Computer program language) | |
650 | 0 | 7 | |a Objektorientierte Programmierung |0 (DE-588)4233947-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a C sharp |0 (DE-588)4616843-6 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Microsoft dot net |0 (DE-588)4645646-6 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a C sharp |0 (DE-588)4616843-6 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a Objektorientierte Programmierung |0 (DE-588)4233947-9 |D s |
689 | 1 | |5 DE-604 | |
689 | 2 | 0 | |a Microsoft dot net |0 (DE-588)4645646-6 |D s |
689 | 2 | |5 DE-604 | |
856 | 4 | 2 | |m SWB Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=009735110&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-009735110 |
Datensatz im Suchindex
_version_ | 1804129082024132608 |
---|---|
adam_text | CONTENTS PART 1 INTRODUCTION TO OBJECT ORIENTATION 1 INTRODUCTION TO
OBJECT ORIENTATION . . . . . . . . . . . . . . . . . . . . 3 1.1
INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 1.2 PROGRAMMING PARADIGMS . . . . . . . . . . . . . . . . . . . . . .
. 3 1.3 REVOLUTION VERSUS EVOLUTION . . . . . . . . . . . . . . . . . .
. . . 4 1.4 WHY LEARN A NEW PROGRAMMING PARADIGM? . . . . . . . . . . .
5 1.4.1 SOFTWARE INDUSTRY BLUES . . . . . . . . . . . . . . . . . . 6
1.4.2 THE ADVANTAGES CLAIMED FOR OBJECT ORIENTATION . . . . 7 1.4.3 WHAT
ARE THE PROBLEMS AND PITFALLS OF OBJECT ORIENTATION? . . . . . . . . . .
. . . . . . . . . . . . . . . 8 1.5 FUNDAMENTALS OF OBJECT ORIENTATION .
. . . . . . . . . . . . . . . 11 1.6 THE BASIC PRINCIPLES OF OBJECT
ORIENTATION . . . . . . . . . . . . 12 1.7 ENCAPSULATION . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 12 1.8 INHERITANCE . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . 14 1.9 ABSTRACTION . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.10
POLYMORPHISM . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16 1.10.1 OVERLOADING OPERATORS . . . . . . . . . . . . . . . . . . . 17
1.10.2 OVERRIDING OPERATORS . . . . . . . . . . . . . . . . . . . . 18
1.11 SUMMARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 18 1.12 FURTHER READING . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 19 2 ELEMENTS OF OBJECT ORIENTATION . . . . . . . . . . . .
. . . . . . . . . . . 21 2.1 INTRODUCTION . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 21 2.2 TERMINOLOGY . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 21 2.3 TYPES OF HIERARCHY . . . . .
. . . . . . . . . . . . . . . . . . . . . 23 2.4 THE MOVE TO OBJECT
TECHNOLOGY . . . . . . . . . . . . . . . . . . . 25 2.5 SUMMARY . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.6 EXERCISES
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.7
FURTHER READING . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26 XV PART 2 INTRODUCTION TO THE C# LANGUAGE 3 WHY OBJECT ORIENTATION? .
. . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.1 INTRODUCTION
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2 THE
PROCEDURAL APPROACH . . . . . . . . . . . . . . . . . . . . . . 29 3.2.1
A NAKED DATA STRUCTURE . . . . . . . . . . . . . . . . . . 29 3.2.2
PROCEDURES FOR THE DATA STRUCTURE . . . . . . . . . . . . 30 3.2.3
PACKAGES . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.3
DOES OBJECT ORIENTATION DO BETTER? . . . . . . . . . . . . . . . . 31
3.3.1 PACKAGES VERSUS CLASSES . . . . . . . . . . . . . . . . . . 31
3.3.2 INHERITANCE . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.4 SUMMARY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 33 4 CONSTRUCTING AN OBJECT-ORIENTED SYSTEM . . . . . . . . . . . .
. . . . . 35 4.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 35 4.2 THE APPLICATION: WINDSCREEN WIPE SIMULATION . .
. . . . . . . 35 4.3 WHERE DO WE START? . . . . . . . . . . . . . . . .
. . . . . . . . . . 36 4.4 IDENTIFYING THE OBJECTS . . . . . . . . . . .
. . . . . . . . . . . . . 37 4.5 IDENTIFYING THE SERVICES OR METHODS . .
. . . . . . . . . . . . . . 38 4.6 REFINING THE OBJECTS . . . . . . . .
. . . . . . . . . . . . . . . . . 39 4.7 BRINGING IT ALL TOGETHER . . .
. . . . . . . . . . . . . . . . . . . . . 39 4.8 WHERE IS THE STRUCTURE?
. . . . . . . . . . . . . . . . . . . . . . . . 42 4.9 SUMMARY . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.10 EXERCISES
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.11
FURTHER READING . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45 5 AN INTRODUCTION TO C# . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 47 5.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 47 5.2 BACKGROUND . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 47 5.3 WHAT IS C#? . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 48 5.4 OBJECTS IN C# . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 49 5.5 COMMERCIAL VERSIONS OF
C# . . . . . . . . . . . . . . . . . . . . . 49 5.6 THE C# ENVIRONMENT .
. . . . . . . . . . . . . . . . . . . . . . . . 49 5.7 COMPARING C# TO
JAVA AND C++ . . . . . . . . . . . . . . . . . . . 50 5.8 C# KEYWORDS .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.9 WHERE
TO GET MORE INFORMATION . . . . . . . . . . . . . . . . . . 52 6 A
LITTLE C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 53 6.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 53 6.2 SETTING UP THE DEVELOPMENT ENVIRONMENT . . . . .
. . . . . . . 54 6.3 COMPILING AND EXECUTING C# . . . . . . . . . . . .
. . . . . . . . 54 6.4 SUMMARY . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 55 7 C# CLASSES . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 57 7.1 INTRODUCTION . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 57 XVI CONTENTS 7.2 THE
BASICS OF THE LANGUAGE . . . . . . . . . . . . . . . . . . . . . 57
7.2.1 SOME TERMINOLOGY . . . . . . . . . . . . . . . . . . . . . . 59
7.2.2 THE MESSAGE-PASSING MECHANISM . . . . . . . . . . . . . 59 7.2.3
THE STATEMENT TERMINATOR . . . . . . . . . . . . . . . . . 59 7.3
CLASSES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 59 7.3.1 CLASS DEFINITIONS . . . . . . . . . . . . . . . . . . . . .
. . 60 7.3.2 CLASSES AND MESSAGES . . . . . . . . . . . . . . . . . . .
. 60 7.3.3 INSTANCES AND INSTANCE VARIABLES . . . . . . . . . . . . . 61
7.3.4 CLASSES AND INHERITANCE . . . . . . . . . . . . . . . . . . . 61
7.3.5 INSTANCE CREATION . . . . . . . . . . . . . . . . . . . . . . 63
7.3.6 CONSTRUCTORS . . . . . . . . . . . . . . . . . . . . . . . . . 64
7.3.7 STATIC CONSTRUCTORS BLOCKS . . . . . . . . . . . . . . . . . 64
7.3.8 FINALIZE METHODS . . . . . . . . . . . . . . . . . . . . . . . 65
7.3.9 SUPPLIED CLASSES . . . . . . . . . . . . . . . . . . . . . . . 67
7.4 METHOD DEFINITIONS . . . . . . . . . . . . . . . . . . . . . . . . .
. 67 7.4.1 THE COMMENTS SECTION . . . . . . . . . . . . . . . . . . . 67
7.4.2 THE LOCAL VARIABLES SECTION . . . . . . . . . . . . . . . . 68
7.4.3 THE STATEMENTS SECTION . . . . . . . . . . . . . . . . . . . 68
7.4.4 THE RETURN OPERATOR . . . . . . . . . . . . . . . . . . . . 68
7.4.5 AN EXAMPLE METHOD . . . . . . . . . . . . . . . . . . . . . 69
7.4.6 STATIC FIELDS AND METHODS . . . . . . . . . . . . . . . . . 69
7.4.7 CONSTANTS . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
7.4.8 READ-ONLY FIELDS . . . . . . . . . . . . . . . . . . . . . . . 72
7.4.9 PROPERTIES AND INDEXERS . . . . . . . . . . . . . . . . . . 73 8
STRUCTS AND ENUMERATIONS . . . . . . . . . . . . . . . . . . . . . . . .
. . 75 8.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 75 8.2 STRUCTS IN C# . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 75 8.3 INITIALIZATION OF STRUCTS . . . . . . . . . .
. . . . . . . . . . . . . . 77 8.4 STRUCTS AND CONSTRUCTORS . . . . . .
. . . . . . . . . . . . . . . . . 77 8.5 IMMUTABLE STRUCTS . . . . . . .
. . . . . . . . . . . . . . . . . . . . 78 8.6 ENUMERATIONS . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 78 8.7 ENUMERATION
FOUNDATIONS . . . . . . . . . . . . . . . . . . . . . . 79 8.8
INITIALIZATION OF ENUMERATION VALUES . . . . . . . . . . . . . . . . 80
8.9 ZERO AND ENUMERATIONS . . . . . . . . . . . . . . . . . . . . . . .
81 8.10 BIT FLAG ENUMERATIONS . . . . . . . . . . . . . . . . . . . . .
. . . 81 8.11 SYSTEM SUPPORT FOR ENUMERATIONS . . . . . . . . . . . . .
. . . . 82 9 INTERFACES . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 85 9.1 INTRODUCTION . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 85 9.2 INTERFACE DEFINITIONS . . . . . .
. . . . . . . . . . . . . . . . . . . 85 9.3 INTERFACES VERSUS ABSTRACT
CLASSES . . . . . . . . . . . . . . . . . 86 9.4 IMPLEMENTING AN
INTERFACE . . . . . . . . . . . . . . . . . . . . . . 86 9.5 USING
INTERFACES . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
9.6 MULTIPLE INHERITANCE AND INTERFACES . . . . . . . . . . . . . . . .
89 9.7 IMPLEMENTING INTERFACES AND EXTENDING A SUPERCLASS . . . . . . 89
CONTENTS XVII 9.8 METHOD HIDING . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 90 9.9 INTERFACES AND STRUCTS . . . . . . . . . . . .
. . . . . . . . . . . . . 92 10 C# CONSTRUCTS . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 95 10.1 INTRODUCTION . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 95 10.2 DATA TYPES . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 10.3 NUMBERS
AND NUMERIC OPERATORS . . . . . . . . . . . . . . . . . 95 10.3.1
NUMERIC VALUES . . . . . . . . . . . . . . . . . . . . . . . 95 10.3.2
BUILT-IN ARITHMETIC OPERATORS . . . . . . . . . . . . . . . 98 10.3.3
USER-DEFINED OPERATORS . . . . . . . . . . . . . . . . . . 98 10.3.4
TYPE OPERATORS . . . . . . . . . . . . . . . . . . . . . . . . 99 10.4
ASSIGNMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
101 10.5 COMPOUND ASSIGNMENT . . . . . . . . . . . . . . . . . . . . . .
. 102 10.6 VARIABLES . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 102 10.6.1 TEMPORARY VARIABLES . . . . . . . . . . . . . . .
. . . . . 102 10.6.2 THE THIS PSEUDO-VARIABLE . . . . . . . . . . . . .
. . . . 103 10.6.3 VARIABLE SCOPE . . . . . . . . . . . . . . . . . . .
. . . . . 103 10.6.4 SPECIAL VALUES * TRUE , FALSE AND NULL . . . . . .
. . . . 104 10.7 MESSAGES AND MESSAGE SELECTORS . . . . . . . . . . . .
. . . . . . 104 10.7.1 INVOKING METHODS . . . . . . . . . . . . . . . .
. . . . . . 104 10.7.2 PRECEDENCE . . . . . . . . . . . . . . . . . . .
. . . . . . . 104 10.8 CHECKED AND UNCHECKED EXPRESSIONS . . . . . . . .
. . . . . . . 105 10.9 SUMMARY . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 106 11 CHARACTERS AND STRINGS . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 107 11.1 INTRODUCTION . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 107 11.2 CHARACTERS . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 11.3 STRINGS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
11.4 CONVERTING OBJECTS TO STRINGS . . . . . . . . . . . . . . . . . . .
. 110 11.5 STRINGS AND STRINGBUILDER . . . . . . . . . . . . . . . . . .
. . . 110 11.6 REGULAR EXPRESSIONS . . . . . . . . . . . . . . . . . . .
. . . . . . . 111 11.7 STRING FORMATTING . . . . . . . . . . . . . . . .
. . . . . . . . . . . 112 11.8 STRING ENCODING . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 113 12 AN EXAMPLE C# CLASS . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 115 12.1 INTRODUCTION . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 115 12.2 DEFINING A
CLASS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 12.2.1
CREATING THE CLASS . . . . . . . . . . . . . . . . . . . . . . 115 12.3
DEFINING A CONSTRUCTORS AND METHODS . . . . . . . . . . . . . . . 116
12.3.1 THE MAIN METHOD . . . . . . . . . . . . . . . . . . . . . . 116
12.3.2 THE CONSTRUCTOR . . . . . . . . . . . . . . . . . . . . . . . 116
12.3.3 THE PROPERTIES . . . . . . . . . . . . . . . . . . . . . . . .
117 12.3.4 THE BIRTHDAY METHOD . . . . . . . . . . . . . . . . . . . 118
12.4 CREATING AN INSTANCE . . . . . . . . . . . . . . . . . . . . . . .
. . 118 XVIII CONTENTS PART 3 C# AND OBJECT ORIENTATION 13 CLASSES,
INHERITANCE AND ABSTRACTION . . . . . . . . . . . . . . . . . . . 123
13.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 123 13.2 CLASSES REVISITED . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 123 13.2.1 WHAT ARE CLASSES FOR? . . . . . . . . . . . .
. . . . . . . 124 13.2.2 CLASS-SIDE METHODS . . . . . . . . . . . . . .
. . . . . . . 125 13.2.3 A CLASS OR AN INSTANCE . . . . . . . . . . . .
. . . . . . . 125 13.3 INHERITANCE IN CLASSES . . . . . . . . . . . . .
. . . . . . . . . . . 127 13.3.1 THE ROLE OF A SUBCLASS . . . . . . . .
. . . . . . . . . . . 127 13.3.2 CAPABILITIES OF CLASSES . . . . . . . .
. . . . . . . . . . . 128 13.3.3 OVERRIDING METHODS . . . . . . . . . .
. . . . . . . . . . . 129 13.3.4 RESTRICTING A SUBCLASS (SEALED CLASSES)
. . . . . . . . . 130 13.4 ABSTRACT CLASSES . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 130 13.5 CONSTRUCTORS AND THEIR USE . . . .
. . . . . . . . . . . . . . . . . 132 13.6 CALLING SUPERCLASS
CONSTRUCTORS . . . . . . . . . . . . . . . . . . 133 13.7 THE MAIN
METHOD . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 14
ENCAPSULATION AND POLYMORPHISM . . . . . . . . . . . . . . . . . . . . .
137 14.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 137 14.2 ENCAPSULATION . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 137 14.2.1 CLASS MODIFIERS . . . . . . . . . . . . . .
. . . . . . . . . . 137 14.2.2 VARIABLE MODIFIERS . . . . . . . . . . .
. . . . . . . . . . . 138 14.2.3 METHOD MODIFIERS . . . . . . . . . . .
. . . . . . . . . . . 138 14.3 NAMESPACES . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 138 14.3.1 DECLARING A NAMESPACE . . . .
. . . . . . . . . . . . . . . 139 14.3.2 ASSEMBLIES . . . . . . . . . .
. . . . . . . . . . . . . . . . 141 14.3.3 USING NAMESPACES . . . . . .
. . . . . . . . . . . . . . . . 141 14.3.4 COMPILING USING ASSEMBLIES .
. . . . . . . . . . . . . . . 142 14.4 POLYMORPHISM . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 143 14.4.1 DYNAMIC OR LATE BINDING
. . . . . . . . . . . . . . . . . . 143 14.4.2 METHOD
SELECTION/OVERLOADING . . . . . . . . . . . . . . 144 14.4.3 METHOD
HIDING . . . . . . . . . . . . . . . . . . . . . . . . 146 14.4.4
VARIABLE-LENGTH PARAMETER LISTS . . . . . . . . . . . . . 147 15 NESTED
CLASSES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 151 15.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 151 15.2 WHAT ARE NESTED CLASSES? . . . . . . . . . . . . .
. . . . . . . . . 151 15.3 HOW AND WHEN SHOULD I USE NESTED CLASSES? . .
. . . . . . . . . 154 15.3.1 AS HELPER CLASSES . . . . . . . . . . . . .
. . . . . . . . . 154 15.3.2 AS EVENT HANDLERS . . . . . . . . . . . . .
. . . . . . . . . 154 15.3.3 AS A WAY OF OVERCOMING SINGLE INHERITANCE .
. . . . . 154 15.3.4 LAYING OUT A C# CLASS WITH NESTED CLASSES . . . . .
. . 154 15.3.5 NESTED CLASS GUIDELINES . . . . . . . . . . . . . . . . .
. 154 CONTENTS XIX 16 ARRAYS IN C# . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 157 16.1 INTRODUCTION . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 157 16.2 ARRAYS . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 157 16.2.1 ARRAYS OF
OBJECTS . . . . . . . . . . . . . . . . . . . . . . 159 16.2.2 BASIC
TYPE ARRAYS . . . . . . . . . . . . . . . . . . . . . . 160 16.2.3
MULTI-DIMENSIONAL ARRAYS . . . . . . . . . . . . . . . . . 160 16.2.4
JAGGED/RAGGED ARRAYS . . . . . . . . . . . . . . . . . . . . 161 16.2.5
ARRAY CONVERSIONS . . . . . . . . . . . . . . . . . . . . . . 162 16.2.6
SYSTEM.ARRAY . . . . . . . . . . . . . . . . . . . . . . . . 162 16.2.7
THE MAIN METHOD . . . . . . . . . . . . . . . . . . . . . . 164 16.2.8
ARRAYS AND METHODS . . . . . . . . . . . . . . . . . . . . . 165 17 THE
COLLECTIONS API . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 167 17.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 167 17.2 DATA STRUCTURE CLASSES . . . . . . . . . . . . .
. . . . . . . . . . . 167 17.3 WHAT IS IN THE COLLECTIONS API? . . . . .
. . . . . . . . . . . . . . 168 17.4 COLLECTION INTERFACES . . . . . . .
. . . . . . . . . . . . . . . . . . 169 17.5 THE CORE INTERFACES . . . .
. . . . . . . . . . . . . . . . . . . . . . 170 17.5.1 ICOLLECTION . . .
. . . . . . . . . . . . . . . . . . . . . . 170 17.5.2 ILIST . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 171 17.5.3 THE IDICTIONARY
INTERFACE . . . . . . . . . . . . . . . . . 172 17.6 COMPARISONS . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 173 17.7 ABSTRACT
IMPLEMENTATIONS . . . . . . . . . . . . . . . . . . . . . . 173 17.7.1
COLLECTIONBASE . . . . . . . . . . . . . . . . . . . . . . . 174 17.7.2
READONLYCOLLECTIONBASE . . . . . . . . . . . . . . . . . 175 17.7.3
DICTIONARYBASE . . . . . . . . . . . . . . . . . . . . . . . 175 17.8
CONCRETE IMPLEMENTATIONS . . . . . . . . . . . . . . . . . . . . . . 175
17.8.1 ARRAYLIST . . . . . . . . . . . . . . . . . . . . . . . . . . 176
17.8.2 BITARRAY . . . . . . . . . . . . . . . . . . . . . . . . . . .
177 17.8.3 THE HASHTABLE CLASS . . . . . . . . . . . . . . . . . . . .
178 17.8.4 SORTEDLIST COLLECTION CLASS . . . . . . . . . . . . . . . 180
17.8.5 THE QUEUE CLASS . . . . . . . . . . . . . . . . . . . . . . . 181
17.8.6 THE STACK CLASS . . . . . . . . . . . . . . . . . . . . . . . 182
17.9 THE SYSTEM.COLLECTIONS.SPECIALIZED NAMESPACE . . . . . . 183 17.10
ENUMERATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
183 17.11 ITERATION OVER DICTIONARIES . . . . . . . . . . . . . . . . .
. . . . . 184 17.12 SUMMARY . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 185 18 AN OBJECT-ORIENTED ORGANIZER . . . . . . . .
. . . . . . . . . . . . . . . 187 18.1 INTRODUCTION . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 187 18.2 THE ORGANIZER CLASS . .
. . . . . . . . . . . . . . . . . . . . . . . 187 18.3 THE CLASS
DEFINITION . . . . . . . . . . . . . . . . . . . . . . . . . 188 18.4
THE UPDATING PROTOCOL . . . . . . . . . . . . . . . . . . . . . . . .
188 18.5 THE ACCESSING PROTOCOL . . . . . . . . . . . . . . . . . . . .
. . . . 189 18.6 THE MAIN METHOD . . . . . . . . . . . . . . . . . . . .
. . . . . . . 190 XX CONTENTS 18.7 THE FULL LISTING . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 191 18.8 EXERCISE * THE FINANCIAL
MANAGER PROJECT . . . . . . . . . . . . . 193 PART 4 FURTHER C# 19
CONTROL AND ITERATION . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 197 19.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 197 19.2 CONTROL STRUCTURES . . . . . . . . . . . . .
. . . . . . . . . . . . . . 197 19.2.1 THE IF STATEMENT . . . . . . . .
. . . . . . . . . . . . . . 197 19.2.2 THE CONDITIONAL OPERATOR . . . .
. . . . . . . . . . . . . 199 19.2.3 THE SWITCH STATEMENT . . . . . . .
. . . . . . . . . . . . 199 19.3 ITERATION . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 201 19.3.1 FOR LOOPS . . . . . . . .
. . . . . . . . . . . . . . . . . . . 202 19.3.2 WHILE LOOPS . . . . . .
. . . . . . . . . . . . . . . . . . . . 203 19.3.3 DO LOOPS . . . . . .
. . . . . . . . . . . . . . . . . . . . . . 204 19.3.4 FOREACH . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 204 19.3.5 BREAK AND
CONTINUE . . . . . . . . . . . . . . . . . . . . 206 19.3.6 THE GOTO
STATEMENT . . . . . . . . . . . . . . . . . . . . . 206 19.3.7 AN
EXAMPLE OF LOOPS . . . . . . . . . . . . . . . . . . . . 207 19.4
RECURSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 208 19.5 SUMMARY . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 209 20 ATTRIBUTES AND VERSIONING . . . . . . . . . . . . . . .
. . . . . . . . . . . 211 20.1 INTRODUCTION . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 211 20.2 ATTRIBUTES . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . 211 20.2.1 WHAT ARE
ATTRIBUTES? . . . . . . . . . . . . . . . . . . . . 211 20.2.2 USING
ATTRIBUTES . . . . . . . . . . . . . . . . . . . . . . . 211 20.2.3
CONDITIONAL ATTRIBUTES . . . . . . . . . . . . . . . . . . . 212 20.2.4
USER-DEFINED ATTRIBUTES . . . . . . . . . . . . . . . . . . 212 20.2.5
ATTRIBUTE PARAMETERS . . . . . . . . . . . . . . . . . . . . 214 20.3
VERSIONING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
214 21 DELEGATES . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 219 21.1 INTRODUCTION . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 219 21.2 DELEGATES . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 219 21.3 DELEGATES IN C# . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 219 21.4 DEFINING A
DELEGATE . . . . . . . . . . . . . . . . . . . . . . . . . . 220 21.5
STATIC AND INSTANCE METHODS . . . . . . . . . . . . . . . . . . . . .
222 21.6 MULTICASTING . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . 224 21.7 DELEGATES AS STATIC PROPERTIES . . . . . . . . . . .
. . . . . . . . . 226 21.8 USAGE . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 227 21.9 SUMMARY . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 227 22 EXCEPTION HANDLING . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . 229 22.1 INTRODUCTION
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 22.2
WHAT IS AN EXCEPTION? . . . . . . . . . . . . . . . . . . . . . . . .
229 CONTENTS XXI 22.3 WHAT IS EXCEPTION HANDLING? . . . . . . . . . . .
. . . . . . . . . 231 22.4 THROWING AN EXCEPTION . . . . . . . . . . . .
. . . . . . . . . . . . 232 22.5 CATCHING AN EXCEPTION . . . . . . . . .
. . . . . . . . . . . . . . . 234 22.6 DEFINING AN EXCEPTION . . . . . .
. . . . . . . . . . . . . . . . . . 237 22.6.1 NESTING EXCEPTIONS . . .
. . . . . . . . . . . . . . . . . . 239 PART 5 GRAPHICAL USER INTERFACES
23 GRAPHICAL USER INTERFACES . . . . . . . . . . . . . . . . . . . . . .
. . . . 243 23.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 243 23.2 WINDOWS FORMS OVERVIEW . . . . . . . . . . .
. . . . . . . . . . . 243 23.3 THE CONTROL CLASS . . . . . . . . . . . .
. . . . . . . . . . . . . . . 245 23.4 THE FORM CLASS . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 246 23.5 BUILDING UP A GUI . . .
. . . . . . . . . . . . . . . . . . . . . . . . 247 23.6 USING PANELS
WITHIN FORMS . . . . . . . . . . . . . . . . . . . . . 250 23.7 DOCKING
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
23.8 ANCHORING . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 255 24 EVENT HANDLING . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 257 24.1 INTRODUCTION . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 257 24.2 EVENT HANDLING IN GENERAL . . . . .
. . . . . . . . . . . . . . . . . 257 24.3 EVENT HANDLING IN C# . . . .
. . . . . . . . . . . . . . . . . . . . . 258 24.4 THE INNER WORKINGS .
. . . . . . . . . . . . . . . . . . . . . . . . . 259 24.5 AN EXAMPLE .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 25 THE
JDEDIT APPLICATION . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 263 25.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 263 25.2 JDEDIT . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 263 25.3 THE STRUCTURE OF JDEDIT . . . . . . . .
. . . . . . . . . . . . . . . 264 25.4 THE MENU BAR AND MENUS . . . . .
. . . . . . . . . . . . . . . . . 266 25.5 THE RICHTEXTBOX SETUP . . . .
. . . . . . . . . . . . . . . . . . . . 269 25.6 MONITORING THE
APPLICATION CLOSURE . . . . . . . . . . . . . . . . 269 25.7 THE FULL
LISTING . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 PART
6 C# DEVELOPMENT 26 STREAMS AND FILES . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 277 26.1 INTRODUCTION . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 277 26.2 FILES . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . 277 26.3 FILEINFO . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 26.4
DIRECTORY AND DIRECTORYINFO . . . . . . . . . . . . . . . . . . . 280
26.5 STREAMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 281 26.5.1 WHAT IS A STREAM? . . . . . . . . . . . . . . . . . . .
. . . 281 26.5.2 USING THE IO CLASSES . . . . . . . . . . . . . . . . .
. . . . 282 26.6 SUMMARY . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 288 XXII CONTENTS 27 SERIALIZATION . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 289 27.1 INTRODUCTION . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 27.2 BINARY
SERIALIZATION . . . . . . . . . . . . . . . . . . . . . . . . . . 290
27.2.1 SAVING OBJECTS . . . . . . . . . . . . . . . . . . . . . . . .
290 27.2.2 READING OBJECTS . . . . . . . . . . . . . . . . . . . . . . .
291 27.3 XML SERIALIZATION . . . . . . . . . . . . . . . . . . . . . . .
. . . . 292 27.3.1 SAVING OBJECTS . . . . . . . . . . . . . . . . . . .
. . . . . 292 27.3.2 READING OBJECTS . . . . . . . . . . . . . . . . . .
. . . . . 294 27.4 CONTROLLING SERIALIZATION . . . . . . . . . . . . . .
. . . . . . . . . 295 27.5 CUSTOM SERIALIZATION . . . . . . . . . . . .
. . . . . . . . . . . . . 295 27.6 SUMMARY . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 296 28 SOCKETS IN C# . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . 297 28.1 INTRODUCTION
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 28.2
SOCKET TO SOCKET COMMUNICATION . . . . . . . . . . . . . . . . . . 297
28.3 SETTING UP A CONNECTION . . . . . . . . . . . . . . . . . . . . . .
. 297 28.4 AN EXAMPLE CLIENT*SERVER APPLICATION . . . . . . . . . . . .
. . 298 28.4.1 THE SYSTEM STRUCTURE . . . . . . . . . . . . . . . . . .
. . 298 28.4.2 IMPLEMENTING THE SERVER APPLICATION . . . . . . . . . .
299 28.4.3 IMPLEMENTING THE CLIENT APPLICATION . . . . . . . . . . . 302
29 DATA ACCESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 305 29.1 INTRODUCTION . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 305 29.2 OLE DB . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 305 29.3 REGISTERING A PROVIDER . . . .
. . . . . . . . . . . . . . . . . . . . 306 29.4 OPENING A CONNECTION .
. . . . . . . . . . . . . . . . . . . . . . . 307 29.5 CREATING A TABLE
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 29.6
OBTAINING DATA FROM A DATABASE . . . . . . . . . . . . . . . . . . 309
29.6.1 FULL LISTING . . . . . . . . . . . . . . . . . . . . . . . . . .
310 29.7 ACCESSING SQL SERVER . . . . . . . . . . . . . . . . . . . . .
. . . . 313 29.8 ODBC . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 315 29.8.1 WHAT IS ODBC? . . . . . . . . . . . . . . .
. . . . . . . . . 315 29.8.2 USING ODBC . . . . . . . . . . . . . . . .
. . . . . . . . . 316 29.9 EXPLOITING ADO.NET . . . . . . . . . . . . .
. . . . . . . . . . . . 318 29.10 FURTHER READING . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 319 30 REMOTING IN .NET . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 321 30.1 INTRODUCTION .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 30.2
REMOTING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
321 30.2.1 SELECTING THE TYPE OF CHANNEL . . . . . . . . . . . . . . .
322 30.2.2 SUBCLASSING A SERVER CLASS . . . . . . . . . . . . . . . . .
322 30.2.3 THE HELLOCLIENT . . . . . . . . . . . . . . . . . . . . . .
325 30.2.4 RUNNING THE APPLICATION . . . . . . . . . . . . . . . . . .
327 30.2.5 WHAT IS HAPPENING? . . . . . . . . . . . . . . . . . . . . .
327 30.3 REMOTING DETAILS . . . . . . . . . . . . . . . . . . . . . . .
. . . . 329 30.3.1 REMOTE OBJECTS AND CHANNELS . . . . . . . . . . . . .
. . 329 CONTENTS XXIII 30.3.2 SERVER-SIDE REGISTRATION . . . . . . . . .
. . . . . . . . . 329 30.3.3 DEFAULT LIFETIME . . . . . . . . . . . . .
. . . . . . . . . . 329 30.3.4 WELL-KNOWN OBJECTS . . . . . . . . . . .
. . . . . . . . . . 330 30.3.5 CLIENT-ACTIVATED OBJECTS . . . . . . . .
. . . . . . . . . . 330 30.3.6 PROGRAMMATIC CONFIGURATION . . . . . . .
. . . . . . . . 331 31 CONCURRENCY . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 333 31.1 INTRODUCTION . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 333 31.2 CONCURRENT PROCESSES .
. . . . . . . . . . . . . . . . . . . . . . . . 333 31.3 THREADS . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 31.3.1
THREAD STATES . . . . . . . . . . . . . . . . . . . . . . . . . 334
31.3.2 CREATING A THREAD . . . . . . . . . . . . . . . . . . . . . . 334
31.4 THE THREAD CLASS . . . . . . . . . . . . . . . . . . . . . . . . .
. . 335 31.4.1 IMPLEMENTING A THREAD . . . . . . . . . . . . . . . . . .
. 338 31.4.2 ASYNCHRONOUS METHOD CALLS . . . . . . . . . . . . . . . .
339 31.4.3 JOINING THREADS . . . . . . . . . . . . . . . . . . . . . . .
341 31.4.4 SYNCHRONIZATION . . . . . . . . . . . . . . . . . . . . . . .
344 31.5 A PRODUCER/CONSUMER EXAMPLE . . . . . . . . . . . . . . . . . .
. 348 32 USING C# IN ASP.NET . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 353 32.1 INTRODUCTION . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 353 32.2 WHAT IS AN ASP? . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 353 32.3 A VERY SIMPLE JSP . . . . . . .
. . . . . . . . . . . . . . . . . . . . 354 32.4 ASP.NET TAGS . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 357 32.4.1 ASP
DIRECTIVES . . . . . . . . . . . . . . . . . . . . . . . . 357 32.4.2
CODE DECLARATION BLOCKS . . . . . . . . . . . . . . . . . . 357 32.4.3
SERVER-SIDE OBJECT TAG SYNTAX . . . . . . . . . . . . . . . 357 33
WEB-BASED USER INTERFACES . . . . . . . . . . . . . . . . . . . . . . .
. . . 359 33.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 359 33.2 WEB FORMS OVERVIEW . . . . . . . . . . . . . .
. . . . . . . . . . . 359 33.3 THE CONTROL CLASS . . . . . . . . . . . .
. . . . . . . . . . . . . . . 361 33.4 THE PAGE CLASS . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 362 33.4.1 THE
SYSTEM.WEB.UI.WEBCONTROLS NAMESPACE . . . . . 363 33.4.2 THE
SYSTEM.WEB.UI.HTMLCONTROLS NAMESPACE . . . . 363 33.5 BUILDING UP A WEB
PAGE . . . . . . . . . . . . . . . . . . . . . . . . 363 33.5.1 BASIC
ASP . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 33.5.2
USING A PAGE CLASS . . . . . . . . . . . . . . . . . . . . . . 366 34
XML AND C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 371 34.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 371 34.2 XML INTRODUCED . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 371 34.2.1 WHAT IS XML? . . . . . . . . . . . .
. . . . . . . . . . . . . 371 34.2.2 WHAT DO XML DOCUMENTS LOOK LIKE? .
. . . . . . . . . 373 34.2.3 XML VOCABULARIES . . . . . . . . . . . . .
. . . . . . . . . 374 34.2.4 WORKING WITH A DTD . . . . . . . . . . . .
. . . . . . . . 375 XXIV CONTENTS 34.3 THE DOM API . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 378 34.4 THE DOM IN C# . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 379 34.5 CREATING AN XML
DOCUMENT IN C# . . . . . . . . . . . . . . . . . 380 34.6 LOADING AN XML
DOCUMENT IN C# . . . . . . . . . . . . . . . . . 382 35 C# STYLE . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
35.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 387 35.2 CODE LAYOUT . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 387 35.3 VARIABLES . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 388 35.3.1 NAMING VARIABLES . . . . . . . . . .
. . . . . . . . . . . . 388 35.3.2 USING VARIABLES . . . . . . . . . . .
. . . . . . . . . . . . . 389 35.4 CLASSES . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 391 35.4.1 NAMING CLASSES . . . .
. . . . . . . . . . . . . . . . . . . 391 35.4.2 THE ROLE OF A CLASS . .
. . . . . . . . . . . . . . . . . . . 391 35.4.3 CREATING NEW DATA
STRUCTURE CLASSES . . . . . . . . . . . 391 35.4.4 CLASS COMMENTS . . .
. . . . . . . . . . . . . . . . . . . . 392 35.4.5 USING A CLASS OR AN
INSTANCE . . . . . . . . . . . . . . . . 393 35.5 INTERFACES . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 393 35.6 METHODS . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 35.6.1
NAMING METHODS . . . . . . . . . . . . . . . . . . . . . . . 393 35.6.2
USING METHODS . . . . . . . . . . . . . . . . . . . . . . . . 394 35.6.3
CLASS METHODS AND INSTANCE METHODS . . . . . . . . . . 395 35.6.4
CONSTRUCTORS . . . . . . . . . . . . . . . . . . . . . . . . . 395
35.6.5 STATIC CONSTRUCTORS . . . . . . . . . . . . . . . . . . . . . 395
35.6.6 THE DESTRUCTOR METHOD . . . . . . . . . . . . . . . . . . . 396
35.6.7 PROGRAMMING IN TERMS OF OBJECTS . . . . . . . . . . . . 396
35.6.8 POSITIONING OF METHODS . . . . . . . . . . . . . . . . . . . 396
35.7 SCOPING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 396 36 C# ROUNDUP . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 399 36.1 INTRODUCTION . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 399 36.2 MEMORY MANAGEMENT . . . . . . . .
. . . . . . . . . . . . . . . . 399 36.2.1 WHY HAVE AUTOMATIC MEMORY
MANAGEMENT? . . . . . . 399 36.2.2 MEMORY MANAGEMENT IN C# . . . . . . .
. . . . . . . . . 400 36.2.3 WHEN IS GARBAGE COLLECTION PERFORMED? . . .
. . . . . 400 36.3 CONVERSION OF CLASSES . . . . . . . . . . . . . . . .
. . . . . . . . . 401 36.4 THE MAIN METHOD . . . . . . . . . . . . . . .
. . . . . . . . . . . . 403 36.5 COMPILER DIRECTIVES . . . . . . . . . .
. . . . . . . . . . . . . . . . 404 36.6 ASSERTIONS, DEBUGGING AND
TRACING . . . . . . . . . . . . . . . . 405 36.6.1 DEBUGGING AND TRACING
. . . . . . . . . . . . . . . . . . . 405 36.6.2 ASSERTIONS . . . . . .
. . . . . . . . . . . . . . . . . . . . . 408 36.7 USING POINTERS IN C#
. . . . . . . . . . . . . . . . . . . . . . . . . 409 37 THE .NET
ENVIRONMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
37.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 413 37.2 .NET OVERVIEW . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 413 CONTENTS XXV 37.3 THE .NET FRAMEWORK . . . . . . . . .
. . . . . . . . . . . . . . . . 414 37.3.1 COMMON LANGUAGE RUNTIME . . .
. . . . . . . . . . . . . 414 37.3.2 FRAMEWORK CLASS LIBRARY . . . . . .
. . . . . . . . . . . . 415 37.4 .NET MY SERVICES . . . . . . . . . . .
. . . . . . . . . . . . . . . . 416 37.5 LANGUAGE INTEROPERABILITY . . .
. . . . . . . . . . . . . . . . . . . 416 PART 7 OBJECT-ORIENTED DESIGN
38 OBJECT-ORIENTED ANALYSIS AND DESIGN . . . . . . . . . . . . . . . . .
. . 421 38.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 421 38.2 OBJECT-ORIENTED DESIGN METHODS . . . . . . . . .
. . . . . . . . . 421 38.3 OBJECT-ORIENTED ANALYSIS . . . . . . . . . .
. . . . . . . . . . . . 422 38.4 THE BOOCH METHOD . . . . . . . . . . .
. . . . . . . . . . . . . . . 422 38.4.1 THE STEPS IN THE BOOCH METHOD .
. . . . . . . . . . . . . 423 38.4.2 STRENGTHS AND WEAKNESSES . . . . .
. . . . . . . . . . . . 423 38.5 THE OBJECT MODELING TECHNIQUE . . . . .
. . . . . . . . . . . . . 423 38.5.1 THE ANALYSIS PHASE . . . . . . . .
. . . . . . . . . . . . . 424 38.5.2 THE DESIGN PHASE . . . . . . . . .
. . . . . . . . . . . . . 424 38.5.3 THE IMPLEMENTATION PHASE . . . . .
. . . . . . . . . . . . 425 38.5.4 STRENGTHS AND WEAKNESSES . . . . . .
. . . . . . . . . . . 425 38.6 THE OBJECTORY METHOD . . . . . . . . . .
. . . . . . . . . . . . . . 425 38.6.1 THE REQUIREMENTS PHASE . . . . .
. . . . . . . . . . . . . 425 38.6.2 THE ANALYSIS PHASE . . . . . . . .
. . . . . . . . . . . . . 426 38.6.3 THE CONSTRUCTION PHASE . . . . . .
. . . . . . . . . . . . 426 38.6.4 STRENGTHS AND WEAKNESSES . . . . . .
. . . . . . . . . . . 426 38.7 THE FUSION METHOD . . . . . . . . . . . .
. . . . . . . . . . . . . . 426 38.8 THE UNIFIED MODELING LANGUAGE . . .
. . . . . . . . . . . . . . . 427 38.9 SUMMARY . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 428 39 THE UNIFIED MODELING
LANGUAGE . . . . . . . . . . . . . . . . . . . . . . 429 39.1
INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
429 39.2 THE META-MODEL . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 430 39.3 THE MODELS . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 431 39.4 USE CASE DIAGRAMS . . . . . . . . . . . . . .
. . . . . . . . . . . . 431 39.5 THE OBJECT MODEL . . . . . . . . . . .
. . . . . . . . . . . . . . . . 432 39.5.1 REPRESENTING CLASSES . . . .
. . . . . . . . . . . . . . . . 433 39.5.2 REPRESENTING OBJECTS . . . .
. . . . . . . . . . . . . . . . 434 39.5.3 REPRESENTING RELATIONSHIPS .
. . . . . . . . . . . . . . . 435 39.6 PACKAGES . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 440 39.7 SEQUENCE DIAGRAMS . . .
. . . . . . . . . . . . . . . . . . . . . . . 441 39.8 COLLABORATION
DIAGRAMS . . . . . . . . . . . . . . . . . . . . . . . 442 39.9 STATE
MACHINE DIAGRAMS . . . . . . . . . . . . . . . . . . . . . . . 444
39.9.1 START POINTS . . . . . . . . . . . . . . . . . . . . . . . . . .
444 39.9.2 EVENTS . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 445 39.9.3 A SET OF TRANSITIONS . . . . . . . . . . . . . . . . . .
. . . 445 39.9.4 A SET OF STATE VARIABLES . . . . . . . . . . . . . . .
. . . . 446 XXVI CONTENTS 39.9.5 A SET OF STATES . . . . . . . . . . . .
. . . . . . . . . . . . 446 39.9.6 A SET OF EXIT POINTS . . . . . . . .
. . . . . . . . . . . . . 447 39.10 DEPLOYMENT DIAGRAMS . . . . . . . .
. . . . . . . . . . . . . . . . 447 39.11 SUMMARY . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 447 40 THE UNIFIED PROCESS . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 40.1
INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
449 40.2 THE UNIFIED PROCESS . . . . . . . . . . . . . . . . . . . . . .
. . . . 449 40.2.1 OVERVIEW OF THE UNIFIED PROCESS . . . . . . . . . . .
. . 450 40.2.2 LIFE CYCLE PHASES . . . . . . . . . . . . . . . . . . . .
. . . 451 40.2.3 PHASES, ITERATIONS AND WORKFLOWS . . . . . . . . . . .
. . 452 40.2.4 WORKFLOWS AND ACTIVITIES . . . . . . . . . . . . . . . .
. . 454 40.3 REQUIREMENTS WORKFLOW . . . . . . . . . . . . . . . . . . .
. . . . 455 40.3.1 INTERFACE DESCRIPTIONS . . . . . . . . . . . . . . .
. . . . 455 40.4 ANALYSIS WORKFLOW . . . . . . . . . . . . . . . . . . .
. . . . . . . 455 40.4.1 ANALYSIS MODEL CLASSES . . . . . . . . . . . .
. . . . . . . 456 40.4.2 CONSTRUCTING THE ANALYSIS MODEL . . . . . . . .
. . . . . 457 40.5 DESIGN WORKFLOW . . . . . . . . . . . . . . . . . . .
. . . . . . . . 460 40.5.1 IDENTIFYING CLASSES . . . . . . . . . . . . .
. . . . . . . . 461 40.5.2 REFINING THE SET OF CLASSES . . . . . . . . .
. . . . . . . . 461 40.5.3 IDENTIFYING AND REFINING ATTRIBUTES . . . . .
. . . . . . 462 40.5.4 IDENTIFYING AND REFINING OPERATIONS . . . . . . .
. . . . 462 40.5.5 DESIGN USE CASE REALIZATIONS . . . . . . . . . . . .
. . . 463 40.5.6 GENERATING A SEQUENCE DIAGRAM . . . . . . . . . . . . .
463 40.5.7 BUILDING A STATECHART DIAGRAM . . . . . . . . . . . . . . .
463 40.5.8 IDENTIFYING AND REFINING ASSOCIATIONS . . . . . . . . . . 464
40.5.9 IDENTIFYING INTERFACES AND INHERITANCE . . . . . . . . . . 464
40.5.10 REMAINING STEPS . . . . . . . . . . . . . . . . . . . . . . .
465 40.6 IMPLEMENTATION WORKFLOW . . . . . . . . . . . . . . . . . . . .
. . 465 40.7 TESTING WORKFLOW . . . . . . . . . . . . . . . . . . . . .
. . . . . . 465 40.8 SUMMARY . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 466 REFERENCES . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 467 INDEX . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 CONTENTS
XXVII
|
any_adam_object | 1 |
author | Hunt, John 1964- |
author_GND | (DE-588)115568409 |
author_facet | Hunt, John 1964- |
author_role | aut |
author_sort | Hunt, John 1964- |
author_variant | j h jh |
building | Verbundindex |
bvnumber | BV014200800 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.73.C154 |
callnumber-search | QA76.73.C154 |
callnumber-sort | QA 276.73 C154 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 250 ST 260 |
ctrlnum | (OCoLC)248466968 (DE-599)BVBBV014200800 |
dewey-full | 005.13/3 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.13/3 |
dewey-search | 005.13/3 |
dewey-sort | 15.13 13 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
edition | 1. publ. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01798nam a22004938c 4500</leader><controlfield tag="001">BV014200800</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20030827 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">020312s2002 gw a||| |||| 00||| eng d</controlfield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">963894536</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1852335815</subfield><subfield code="9">1-85233-581-5</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)248466968</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV014200800</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">DE</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-92</subfield><subfield code="a">DE-20</subfield><subfield code="a">DE-573</subfield><subfield code="a">DE-11</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.73.C154</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.13/3</subfield><subfield code="2">21</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 260</subfield><subfield code="0">(DE-625)143632:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Hunt, John</subfield><subfield code="d">1964-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)115568409</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Guide to C# and object orientation</subfield><subfield code="c">John Hunt</subfield></datafield><datafield tag="246" ind1="1" ind2="3"><subfield code="a">C and object orientation</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">1. publ.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">London [u.a.]</subfield><subfield code="b">Springer</subfield><subfield code="c">2002</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXVII, 476 S.</subfield><subfield code="b">Ill.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">Springer professional computing</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">C# (Computer program language)</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Objektorientierte Programmierung</subfield><subfield code="0">(DE-588)4233947-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">C sharp</subfield><subfield code="0">(DE-588)4616843-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Microsoft dot net</subfield><subfield code="0">(DE-588)4645646-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">C sharp</subfield><subfield code="0">(DE-588)4616843-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">Objektorientierte Programmierung</subfield><subfield code="0">(DE-588)4233947-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="2" ind2="0"><subfield code="a">Microsoft dot net</subfield><subfield code="0">(DE-588)4645646-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">SWB Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=009735110&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-009735110</subfield></datafield></record></collection> |
id | DE-604.BV014200800 |
illustrated | Illustrated |
indexdate | 2024-07-09T18:59:28Z |
institution | BVB |
isbn | 1852335815 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-009735110 |
oclc_num | 248466968 |
open_access_boolean | |
owner | DE-92 DE-20 DE-573 DE-11 |
owner_facet | DE-92 DE-20 DE-573 DE-11 |
physical | XXVII, 476 S. Ill. |
publishDate | 2002 |
publishDateSearch | 2002 |
publishDateSort | 2002 |
publisher | Springer |
record_format | marc |
series2 | Springer professional computing |
spelling | Hunt, John 1964- Verfasser (DE-588)115568409 aut Guide to C# and object orientation John Hunt C and object orientation 1. publ. London [u.a.] Springer 2002 XXVII, 476 S. Ill. txt rdacontent n rdamedia nc rdacarrier Springer professional computing C# (Computer program language) Objektorientierte Programmierung (DE-588)4233947-9 gnd rswk-swf C sharp (DE-588)4616843-6 gnd rswk-swf Microsoft dot net (DE-588)4645646-6 gnd rswk-swf C sharp (DE-588)4616843-6 s DE-604 Objektorientierte Programmierung (DE-588)4233947-9 s Microsoft dot net (DE-588)4645646-6 s SWB Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=009735110&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Hunt, John 1964- Guide to C# and object orientation C# (Computer program language) Objektorientierte Programmierung (DE-588)4233947-9 gnd C sharp (DE-588)4616843-6 gnd Microsoft dot net (DE-588)4645646-6 gnd |
subject_GND | (DE-588)4233947-9 (DE-588)4616843-6 (DE-588)4645646-6 |
title | Guide to C# and object orientation |
title_alt | C and object orientation |
title_auth | Guide to C# and object orientation |
title_exact_search | Guide to C# and object orientation |
title_full | Guide to C# and object orientation John Hunt |
title_fullStr | Guide to C# and object orientation John Hunt |
title_full_unstemmed | Guide to C# and object orientation John Hunt |
title_short | Guide to C# and object orientation |
title_sort | guide to c and object orientation |
topic | C# (Computer program language) Objektorientierte Programmierung (DE-588)4233947-9 gnd C sharp (DE-588)4616843-6 gnd Microsoft dot net (DE-588)4645646-6 gnd |
topic_facet | C# (Computer program language) Objektorientierte Programmierung C sharp Microsoft dot net |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=009735110&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT huntjohn guidetocandobjectorientation AT huntjohn candobjectorientation |