
At a Glance
648 Pages
23.5 x 19.1 x 3.3
Paperback
$103.75
or 4 interest-free payments of $25.94 with
orShips in 10 to 15 business days
| Acknowledgments | p. xv |
| Introduction | p. xvii |
| The .NET Environment and C# | |
| Introduction to C# and .NET | p. 2 |
| When to Use C# and C++ | p. 8 |
| Distinguishing .NET from Other Environments | p. 11 |
| Using the Common Language Runtime | p. 13 |
| Viewing Intermediate Language Code | p. 16 |
| Taking Advantage of Just-In-Time Debugging | p. 18 |
| Exploiting the .NET Interoperability with COM | p. 20 |
| Using .NET Versioning to Handle Software Updates | p. 22 |
| Querying Class Capabilities Through .NET Reflection | p. 24 |
| Developing C# Applications Within Visual Studio .NET | p. 28 |
| Using the Visual Studio Options Dialog Box | p. 34 |
| Customizing Toolbars and Menus | p. 35 |
| Adding Items to the Tools Menu | p. 38 |
| Test Driving Visual Studio .NET | p. 41 |
| Using the Properties Tool Window | p. 46 |
| Using IntelliSense | p. 47 |
| Getting Help | p. 49 |
| The C# Language | |
| Getting Started with C# | p. 54 |
| Accessing C# Library Classes | p. 60 |
| Creating a Command Line Program | p. 61 |
| Adding References to a Command Line Program | p. 64 |
| Comparing the Results with C++ | p. 65 |
| Creating a Windows Program | p. 66 |
| Comparing the Results with Visual Basic | p. 68 |
| Understanding White Space and Tokens | p. 71 |
| Commenting Your Code | p. 72 |
| Documenting Your Code with XML Comments | p. 75 |
| Using the C# Debugger | p. 75 |
| Using the Output and Task List Windows | p. 78 |
| Deciphering the Task List Window | p. 79 |
| Writing and Using Your Own Namespaces | p. 80 |
| Using the Console Class | p. 81 |
| Formatting Output and Strings | p. 83 |
| Using Preprocessor Directives | p. 87 |
| Laying a C# Foundation | p. 90 |
| Understanding Value Types | p. 98 |
| Understanding References | p. 98 |
| Writing Expressions | p. 102 |
| Writing Statements | p. 103 |
| Using Managed Code | p. 104 |
| Using Logical Operators | p. 107 |
| Using Relational, Equality, and Conditional Operators | p. 110 |
| Using Assignment Operators | p. 113 |
| Understanding C# Type Operators | p. 116 |
| Using unsafe Code | p. 117 |
| Using the sizeof Operator | p. 120 |
| Boxing and Unboxing | p. 121 |
| Using checked and unchecked Statements | p. 124 |
| Writing Loops | p. 128 |
| Using Program Control Statements | p. 132 |
| Understanding Scope in C# | p. 138 |
| Data Types in C# | p. 142 |
| Defining Structures Within C# | p. 148 |
| Declaring and Using Simple Data Types | p. 150 |
| Creating Enumerated Lists | p. 152 |
| Using Reference Types | p. 155 |
| Basics of C# Classes | p. 156 |
| Declaring Arrays in C# | p. 157 |
| Understanding Interfaces | p. 158 |
| Using Delegates to Create a Callback Function | p. 160 |
| Using the object Data Type | p. 162 |
| Passing Variables to Functions | p. 164 |
| Using Fields and Properties | p. 166 |
| Using String Interning to Reduce Memory Consumption | p. 171 |
| Encoding Strings in C# | p. 172 |
| Data Conversion in C# | p. 176 |
| Structures in C# | p. 178 |
| Defining Structures | p. 183 |
| Using Structures as Value-Type Objects | p. 187 |
| Using Structures as References | p. 188 |
| Adding Functions to Structures | p. 190 |
| Adding Properties to a Structure | p. 194 |
| Understanding C# Classes | p. 200 |
| Taking Advantage of Built-In Classes | p. 205 |
| Referring to the Current Object Using the this Keyword | p. 213 |
| Protecting Class Members Using Access Keywords | p. 215 |
| Using Class Member Methods and Properties | p. 217 |
| Using the static Modifier with Class Members | p. 223 |
| Declaring Constructors and Destructors | p. 225 |
| Creating Constants and readonly Fields | p. 231 |
| Nesting One Class Within Another | p. 235 |
| Overloading and Name Hiding | p. 238 |
| Object-Oriented Programming and C# | p. 246 |
| Encapsulating Your Data | p. 249 |
| Inheriting from a Base Class | p. 251 |
| Designing a Base Class | p. 255 |
| Hiding Base Class Members | p. 256 |
| Calling Constructors and Destructors in Order | p. 258 |
| Preventing Inheritance--The Sealed Modifier | p. 260 |
| Polymorphism: Changing Class Behavior Using Virtual Methods | p. 261 |
| Using Virtual Properties | p. 273 |
| Defining an Abstract Class | p. 275 |
| Declaring an Abstract Function | p. 276 |
| Using the Object Browser | p. 279 |
| Setting the Browsing Scope | p. 280 |
| Using the Objects Pane | p. 281 |
| Using the Members Pane | p. 282 |
| Navigating the Object Browser | p. 283 |
| Searching for Symbols | p. 284 |
| Handling Exceptions | p. 286 |
| Using Exception Handling in the CLR | p. 290 |
| Using try and catch Blocks | p. 292 |
| Catching an Exception | p. 295 |
| Using Multiple catch Blocks | p. 298 |
| Using the Exception Classes | p. 300 |
| Throwing an Exception | p. 303 |
| Scope in Exception Blocks | p. 308 |
| Using Exceptions with checked Variables | p. 309 |
| Terminating a Program in an Exception Block | p. 311 |
| Understanding the finally Block | p. 313 |
| Advanced C# Concepts | p. 316 |
| Nesting Namespaces | p. 321 |
| Specifying Namespaces with the using Directive | p. 323 |
| Taking a Closer Look at the using Statement | p. 326 |
| Adding References | p. 327 |
| Building a Module File | p. 331 |
| Creating a Shared Assembly | p. 332 |
| Using C# Interfaces to Define an Abstraction | p. 336 |
| Getting Runtime Information Using Reflection | p. 340 |
| Dynamically Invoking an Object | p. 344 |
| Creating Threads of Execution | p. 346 |
| Using Arrays | p. 352 |
| Initializing an Array | p. 358 |
| Using Multi-Dimensional Arrays | p. 360 |
| Using Jagged Arrays | p. 364 |
| Using the System.Array Class | p. 366 |
| Searching and Sorting Arrays | p. 368 |
| Using the Copy Method to Copy Array Values | p. 370 |
| Using Arrays of Objects | p. 373 |
| Using Indexers | p. 376 |
| How Indexers Work | p. 377 |
| Declaring an Indexer | p. 378 |
| Using the C# Indexer Wizard | p. 379 |
| File Operations | p. 382 |
| Using the FileStream Class | p. 389 |
| Using the MemoryStream Class to Create Temporary Storage | p. 392 |
| Using the NetworkStream Class to Create a Network Connection | p. 395 |
| Using the BufferedStream Class to Buffer a Stream's Input or Output | p. 399 |
| Performing Asynchronous I/O | p. 401 |
| Discarding Unnecessary Data Using the Null Field as a Bit Bucket | p. 404 |
| Exploiting the TextReader and TextWriter Abstract Classes | p. 405 |
| Using StreamReader and StreamWriter | p. 406 |
| Opening a File Using the FileOpen Common Dialog | p. 410 |
| Using the File and FileInfo classes | p. 414 |
| Getting and Setting the Directory | p. 418 |
| Windows Programming in C# | |
| Writing Windows Forms Applications | p. 424 |
| Creating a Form-Based Application | p. 429 |
| Hiding and Showing Forms | p. 432 |
| Adding Controls to a Form | p. 435 |
| Adding Forms to an Application | p. 439 |
| Setting the Tab Order | p. 444 |
| Setting Form Properties | p. 445 |
| Using Modal and Modeless Forms | p. 446 |
| Debugging C# Programs | p. 454 |
| Debugging C# and .NET Applications Using DbgCLR.exe | p. 459 |
| Troubleshooting .NET Applications Using Just-In-Time Debugging | p. 462 |
| Running a Program in the Visual Studio Debugger | p. 463 |
| Setting Breakpoints to Suspend a Program's Execution | p. 465 |
| Setting Conditions on Methods | p. 467 |
| Recovering the StackTrace | p. 470 |
| Using the Debug Class | p. 472 |
| Using Trace Listeners | p. 477 |
| Writing Messages to Event Logs | p. 482 |
| Building the User Interface | p. 488 |
| Adding a Menu to a Form | p. 490 |
| Using the Menu Designer | p. 494 |
| Adding Menu Adornments | p. 501 |
| Adding Shortcut Keys (Accelerators) | p. 502 |
| Adding Images | p. 503 |
| Adding a Toolbar | p. 504 |
| Adding a Context Menu | p. 506 |
| Displaying Items in a TreeView Control | p. 507 |
| Displaying Items in a ListView Control | p. 513 |
| An Explorer-Style Application | p. 520 |
| Using Windows Controls | p. 524 |
| Setting Properties for Controls | p. 529 |
| Using Invisible Controls | p. 533 |
| Responding to Control Messages | p. 534 |
| Using One Event for Multiple Controls | p. 536 |
| Enabling and Disabling Controls Using Idle Processing | p. 538 |
| Using the GroupBox Control | p. 540 |
| Grouping Radio Button Controls | p. 542 |
| Anchoring Controls on Forms | p. 544 |
| Docking Controls on Forms | p. 545 |
| Using the Common Dialogs | p. 548 |
| Choosing a Color | p. 551 |
| Selecting a Text Style with FontDialog | p. 555 |
| Opening and Saving Files | p. 557 |
| A Word About Printing | p. 560 |
| Selecting a Printer | p. 566 |
| Setting Page Options | p. 568 |
| Previewing the Print Output | p. 570 |
| Using Events and Delegates | p. 572 |
| Using Events Within C# Programs | p. 577 |
| Writing an Event Handler | p. 579 |
| Sorting Objects Using a Delegate | p. 581 |
| Using a static Delegate | p. 587 |
| Viewing a Delegate's Invocation List | p. 589 |
| Combining and Removing Delegate Methods | p. 591 |
| Responding to Timer Events | p. 593 |
| Responding to System.Threading.Timer Events | p. 595 |
| Index | p. 599 |
| Table of Contents provided by Syndetics. All Rights Reserved. |
ISBN: 9780072193794
ISBN-10: 0072193794
Series: Tips & Techniques S.
Published: 1st January 2002
Format: Paperback
Language: English
Number of Pages: 648
Audience: General Adult
Publisher: McGraw-Hill Education - Europe
Country of Publication: US
Dimensions (cm): 23.5 x 19.1 x 3.3
Weight (kg): 1.08
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

Apache Iceberg: The Definitive Guide
Data Lakehouse Functionality, Performance, and Scalability on the Data Lake
Paperback
RRP $133.00
$64.75
OFF























