
C# 2.0
Practical Guide for Programmers
By:Â Michel de Champlain, Brian G. Patrick
Paperback | 1 February 2005
At a Glance
272 Pages
23.5 x 19.05 x 1.27
Paperback
$89.75
or 4 interest-free payments of $22.44 with
 orÂShips in 15 to 25 business days
Written by a team that boasts extensive experience teaching C# to professionals, this book provides a practical, efficient explanation of the language itself, covering basic to advanced features and calling out all that's new in 2.0. Its instruction is always firmly situated within the context of the .NET framework and bolstered by code examples, key lessons in object-oriented programming, and installments of a realistic application programming tutorial. Concise and incisive, this is the best way to master the world's fastest-growing and most marketable programming language.
Features
* Provides a carefully focused explanation of every aspect of the C# language, including entire chapters on the unified type system, advanced types, collections, generics, reflection and attributes.
* Highlights all features new to the latest version of C# and organizes its presentation of C# according to the key principles of object-oriented programming and the .NET framework.
* Using end-of-chapter exercises, incrementally develops a cohesive application programming tutorial.
* Includes an easy-to-use appendix on the grammatical rules of C# and provides downloadable example code via the companion website.
* Provides a carefully focused explanation of every aspect of the C# language, including entire chapters on the unified type system, advanced types, collections, generics, reflection and attributes.
* Highlights all features new to the latest version of C# and organizes its presentation of C# according to the key principles of object-oriented programming and the .NET framework.
* Using end-of-chapter exercises, incrementally develops a cohesive application programming tutorial.
* Includes an easy-to-use appendix on the grammatical rules of C# and provides downloadable example code via the companion website.
Industry Reviews
| Preface | p. xv |
| Introducing C# and .NET | p. 1 |
| What Is C#? | p. 1 |
| What Is the .NET Framework? | p. 2 |
| The .NET Virtual Machine: Common Language Runtime | p. 4 |
| The .NET Virtual Code: Intermediate Language | p. 4 |
| The .NET Assemblies: Applications and/or Components | p. 4 |
| Project Exercise | p. 5 |
| Syntax Notation | p. 6 |
| Classes, Objects, and Namespaces | p. 9 |
| Classes and Objects | p. 10 |
| Declaring Classes | p. 10 |
| Creating Objects | p. 11 |
| Access Modifiers | p. 12 |
| Controlling Access to Classes | p. 12 |
| Controlling Access to Class Members | p. 12 |
| Namespaces | p. 14 |
| Declaring Namespaces | p. 14 |
| Importing Namespaces | p. 16 |
| Controlling the Global Namespace | p. 17 |
| Resolving Namespace Conflicts | p. 18 |
| Compilation Units | p. 19 |
| Presenting a Complete C# Program | p. 19 |
| Declaring Partial Classes | p. 21 |
| Compilation and Execution | p. 22 |
| Using Assemblies for Separate Compilation | p. 23 |
| Revisiting Access Modifiers | p. 24 |
| Adding XML Documentation | p. 26 |
| Class Members and Class Reuse | p. 29 |
| Fields and Methods | p. 29 |
| Invoking Methods | p. 30 |
| Accessing Fields | p. 32 |
| Declaring Constructors | p. 32 |
| Declaring Destructors | p. 36 |
| Parameter Passing | p. 37 |
| Passing Arguments by Value | p. 37 |
| Passing Arguments by Reference | p. 38 |
| Passing a Variable Number of Arguments | p. 41 |
| Using the this Reference | p. 42 |
| Overloading Methods | p. 45 |
| Class Reuse | p. 45 |
| Using Aggregation | p. 46 |
| Using Inheritance | p. 46 |
| Comparing Aggregation and Inheritance | p. 50 |
| Using Protected Methods | p. 51 |
| Unified Type System | p. 55 |
| Reference Types | p. 56 |
| Value Types | p. 56 |
| Simple Value Types | p. 57 |
| Nullable Types | p. 58 |
| Structure Types | p. 60 |
| Enumeration Types | p. 61 |
| Literals | p. 63 |
| Conversions | p. 64 |
| Boxing and Unboxing | p. 66 |
| The Object Root Class | p. 67 |
| Calling Virtual Methods | p. 67 |
| Invoking the Object Constructor | p. 69 |
| Using Object Instance Methods | p. 69 |
| Using Object Static Methods | p. 75 |
| Arrays | p. 76 |
| Creating and Initializing Arrays | p. 77 |
| Accessing Arrays | p. 78 |
| Using Rectangular and Jagged Arrays | p. 78 |
| Strings | p. 79 |
| Invoking String Methods | p. 80 |
| Concat, IndexOf, and Substring Methods | p. 80 |
| The StringBuilder Class | p. 81 |
| Operators, Assignments, and Expressions | p. 83 |
| Operator Precedence and Associativity | p. 83 |
| Assignment Operators | p. 84 |
| Simple Assignment | p. 84 |
| Multiple Assignments | p. 86 |
| Conditional Operator | p. 86 |
| Null Coalescing Operator | p. 87 |
| Conditional Logical Operators | p. 88 |
| Logical Operators | p. 89 |
| Logical Operators as Conditional Logical Operators | p. 90 |
| Compound Logical Assignment Operators | p. 91 |
| Equality Operators | p. 92 |
| Simple Value Type Equality | p. 92 |
| Object Reference and Value Equality | p. 93 |
| Relational Operators | p. 94 |
| Type Testing | p. 95 |
| Shift Operators | p. 96 |
| Compound Shift Assignment Operators | p. 97 |
| Arithmetic Operators | p. 97 |
| Multiplicative Operators | p. 97 |
| Additive Operators | p. 98 |
| checked/unchecked Operators | p. 99 |
| Compound Arithmetic Assignment Operators | p. 100 |
| Unary Operators | p. 101 |
| Prefix and Postfix Operators | p. 102 |
| Explicit Casts | p. 103 |
| Other Primary Operators | p. 103 |
| Overloadable Operators | p. 104 |
| Statements and Exceptions | p. 107 |
| Block Statement | p. 107 |
| Declaration Statements | p. 108 |
| Embedded Statements | p. 109 |
| Expression and Empty Statements | p. 109 |
| Selection Statements | p. 110 |
| Iteration Statements | p. 112 |
| Jump Statements | p. 114 |
| checked/unchecked Statements | p. 116 |
| lock and using Statements | p. 116 |
| Exceptions and Exception Handling | p. 117 |
| What Is an Exception? | p. 117 |
| Raising and Handling Exceptions | p. 118 |
| Using the throw Statement | p. 119 |
| Using the try-catch Statement | p. 121 |
| An Extended Example | p. 124 |
| Advanced Types, Polymorphism, and Accessors | p. 129 |
| Delegates and Events | p. 130 |
| Using Delegates for Callbacks | p. 130 |
| Using Delegates for Events | p. 133 |
| Using Delegates for Anonymous Methods | p. 135 |
| Using Delegate Inferences | p. 136 |
| Abstract Classes | p. 136 |
| Declaring Abstract Classes | p. 136 |
| Implementing Abstract Classes | p. 137 |
| Using Abstract Classes | p. 138 |
| Interfaces | p. 138 |
| Declaring Interfaces | p. 139 |
| Implementing Interfaces | p. 140 |
| Using Interface Methods | p. 141 |
| Polymorphism and Virtual Methods | p. 143 |
| Using the Modifiers override and virtual | p. 143 |
| Adding and Removing Polymorphism | p. 145 |
| Using Dynamic Binding | p. 146 |
| Properties | p. 150 |
| Declaring get and set Accessors | p. 150 |
| Declaring Virtual and Abstract Properties | p. 151 |
| Declaring Static Properties | p. 153 |
| Declaring Properties with Accessor Modifiers | p. 154 |
| Indexers | p. 155 |
| Nested Types | p. 157 |
| Other Modifiers | p. 159 |
| Collections and Generics | p. 163 |
| Collections | p. 163 |
| Cloning Collections | p. 165 |
| Using List-Type Collections | p. 165 |
| Using Dictionary-Type Collections | p. 173 |
| Using Iterator Blocks and yield Statements | p. 178 |
| Generics | p. 180 |
| Defining Generics | p. 181 |
| Declaring Generic Objects | p. 183 |
| Resource Disposal, Input/Output, and Threads | p. 185 |
| Resource Disposal | p. 185 |
| Input/Output | p. 188 |
| Using Binary Streams | p. 188 |
| Using Byte Streams | p. 190 |
| Using Character Streams | p. 191 |
| Reading XML Documents from Streams | p. 192 |
| Threads | p. 193 |
| Examining the Thread Class and Thread States | p. 193 |
| Creating and Starting Threads | p. 194 |
| Rescheduling and Pausing Threads | p. 195 |
| Suspending, Resuming, and Stopping Threads | p. 196 |
| Joining and Determining Alive Threads | p. 198 |
| Synchronizing Threads | p. 200 |
| Reflection and Attributes | p. 211 |
| Reflection | p. 211 |
| Examining the Reflection Hierarchy | p. 212 |
| Accessing Assemblies | p. 212 |
| Attributes | p. 215 |
| Using Attributes for Exception Serialization | p. 216 |
| Using Attributes for Conditional Compilation | p. 217 |
| Using Attributes for Obsolete Code | p. 218 |
| Defining User-Defined Attributes | p. 218 |
| Using User-Defined Attributes | p. 220 |
| Extracting Attributes Using Reflection | p. 221 |
| Where to Go from Here | p. 223 |
| C# 2.0 Grammar | p. 227 |
| Lexical Grammar | p. 227 |
| Line Terminators | p. 228 |
| White Space | p. 228 |
| Comments | p. 228 |
| Tokens | p. 228 |
| Unicode Character Escape Sequences | p. 228 |
| Identifiers | p. 228 |
| Keywords | p. 229 |
| Literals | p. 229 |
| Operators and Punctuators | p. 230 |
| Preprocessing Directives | p. 230 |
| Syntactic Grammar | p. 231 |
| Namespace, Type, and Simple Names | p. 231 |
| Types | p. 231 |
| Variables | p. 232 |
| Expressions | p. 232 |
| Statements | p. 233 |
| Namespaces | p. 235 |
| Classes | p. 235 |
| Structs | p. 237 |
| Arrays | p. 237 |
| Interfaces | p. 237 |
| Enums | p. 238 |
| Delegates | p. 238 |
| Attributes | p. 238 |
| Generics | p. 238 |
| Predefined XML Tags for Documentation Comments | p. 241 |
| References | p. 243 |
| Index | p. 245 |
| Table of Contents provided by Ingram. All Rights Reserved. |
ISBN: 9780121674519
ISBN-10: 0121674517
Series: Morgan Kaufmann Practical Guides
Published: 1st February 2005
Format: Paperback
Language: English
Number of Pages: 272
Audience: Professional and Scholarly
Publisher: Elsevier Science & Technology
Country of Publication: US
Dimensions (cm): 23.5 x 19.05 x 1.27
Weight (kg): 0.56
Shipping
| Standard Shipping | Express Shipping | |
|---|---|---|
| Metro postcodes: | $9.99 | $14.95 |
| Regional postcodes: | $9.99 | $14.95 |
| Rural postcodes: | $9.99 | $14.95 |
Orders over $79.00 qualify for free shipping.
How to return your order
At Booktopia, we offer hassle-free returns in accordance with our returns policy. If you wish to return an item, please get in touch with Booktopia Customer Care.
Additional postage charges may be applicable.
Defective items
If there is a problem with any of the items received for your order then the Booktopia Customer Care team is ready to assist you.
For more info please visit our Help Centre.
You Can Find This Book In

Head First Python
3rd Edition - A Learner's Guide to the Fundamentals of Python Programming, a Brain-Friendly Guide
Paperback
RRP $125.75
$60.99
OFF

Head First Objects-Oriented Analysis and Design
The Best Introduction to Object Orientated Programming
Paperback
RRP $133.00
$64.75
OFF






















