Essential C# 5.0
Addison-Wesley Educational Publishers Inc (Verlag)
978-0-321-87758-1 (ISBN)
- Titel erscheint in neuer Auflage
- Artikel merken
The authors illustrate key constructs with succinct, downloadable code examples. Graphical mind maps at the beginning of each chapter outline the material that is covered and how individual topics interrelate. This edition also includes C# Coding Guidelines that call attention to today’s best practices for writing C# code. Separate indexes of C# versions 3.0, 4.0, and 5.0 make it easy to find answers specific to whatever version of C# you are using.
Throughout, topics intended for beginners and advanced readers are clearly marked. If you’re new to C#, this guide will help you start writing significant code quickly. If you’re an experienced C# developer, you’ll gain insight into today’s most complex programming challenges and techniques as you master key C# 5.0 innovations such as async/await pattern. No matter how advanced your skills become, you’ll come to rely on this indispensable reference.
Coverage includes
Mastering C# data types, operators, control flow, methods, and parameters
Making the most of C# object-oriented constructs, including classes, inheritance, interfaces, and more
Building reliable, effective exception handling into your code
Using generics, delegates, Lambda expressions, and events to reduce code complexity
Learning dynamic programming with reflection and attributes
Querying virtually any type of data using LINQ with Query Expressions
Creating custom collections that operate against business objects
Understanding the Common Language Infrastructure and C# in the context of the .NET 4.5 development platform
Taking advantage of declarative programming, embedded metadata, reflection, and attributes
Thoroughly mastering multithreading and synchronization, including the new async/await paradigm
Discussion of WinRT and programming in C# for Windows 8
Using P/Invoke, pointers, and direct memory manipulation to interoperate with code in other languages
Understanding how C# programs relate to the underlying runtime
Mark Michaelis founded IntelliTect and serves as its chief technical architect and trainer. Since 1996, he has been a Microsoft MVP for C#, Visual Studio Team System, and the Windows SDK; in 2007, he was recognized as a Microsoft Regional Director. Michaelis serves on several Microsoft software design review teams, including C#, Connected Systems, Office/SharePoint, and Visual Studio. He speaks at developer conferences and has written many articles and books. Eric Lippert is a principal developer on the C# compiler team at Microsoft, and a member of the C# language design team. He has worked on the design and implementation of several Microsoft languages, and on Visual Studio Tools for Office.
Figures xv Tables xvii
Foreword xix
Preface xxiii
Acknowledgments xxxv
About the Authors xxxvii
Chapter 1: Introducing C# 1
Hello, World 2
C# Syntax Fundamentals 4
Console Input and Output 17
Chapter 2: Data Types 33
Fundamental Numeric Types 34
More Fundamental Types 43
null and void 53
Categories of Types 57
Nullable Modifier 60
Conversions between Data Types 60
Arrays 67
Chapter 3: Operators and Control Flow 85
Operators 86
Introducing Flow Control 103
Code Blocks ({}) 110
Code Blocks, Scopes, and Declaration Spaces 112
Boolean Expressions 114
Bitwise Operators (<<, >>, |, &, ^, ~) 121
Control Flow Statements, Continued 127
Jump Statements 139
C# Preprocessor Directives 145
Chapter 4: Methods and Parameters 155
Calling a Method 156
Declaring a Method 163
The using Directive 168
Returns and Parameters on Main() 172
Advanced Method Parameters 175
Recursion 184
Method Overloading 186
Optional Parameters 189
Basic Error Handling with Exceptions 194
Chapter 5: Classes 209
Declaring and Instantiating a Class 213
Instance Fields 217
Instance Methods 219
Using the this Keyword 220
Access Modifiers 227
Properties 229
Constructors 244
Static Members 255
Extension Methods 265
Encapsulating the Data 267
Nested Classes 269
Partial Classes 272
Chapter 6: Inheritance 277
Derivation 278
Overriding the Base Class 290
Abstract Classes 302
All Classes Derive from System.Object 308
Verifying the Underlying Type with the is Operator 309
Conversion Using the as Operator 310
Chapter 7: Interfaces 313
Introducing Interfaces 314
Polymorphism through Interfaces 315
Interface Implementation 320
Converting between the Implementing Class and Its Interfaces 326
Interface Inheritance 326
Multiple Interface Inheritance 329
Extension Methods on Interfaces 330
Implementing Multiple Inheritance via Interfaces 331
Versioning 334
Interfaces Compared with Classes 336
Interfaces Compared with Attributes 337
Chapter 8: Value Types 339
Structs 340
Boxing 349
Enums 358
Chapter 9: Well-Formed Types 371
Overriding object Members 371
Operator Overloading 385
Referencing Other Assemblies 393
Defining Namespaces 398
XML Comments 402
Garbage Collection 407
Resource Cleanup 410
Lazy Initialization 419
Chapter 10: Exception Handling 423
Multiple Exception Types 424
Catching Exceptions 426
General Catch Block 430
Guidelines for Exception Handling 432
Defining Custom Exceptions 435
Wrapping an Exception and Rethrowing 438
Chapter 11: Generics 443
C# without Generics 444
Introducing Generic Types 449
Constraints 462
Generic Methods 476
Covariance and Contravariance 481
Generic Internals 489
Chapter 12: Delegates and Lambda Expressions 495
Introducing Delegates 496
Lambda Expressions 506
Anonymous Methods 512
General-Purpose Delegates: System.Func and System.Action 514
Chapter 13: Events 533
Coding the Observer Pattern with Multicast Delegates 534
Events 548
Chapter 14: Collection Interfaces with Standard Query Operators 561
Anonymous Types and Implicitly Typed Local Variables 562
Collection Initializers 568
What Makes a Class a Collection: IEnumerable 571
Standard Query Operators 577
Chapter 15: LINQ with Query Expressions 613
Introducing Query Expressions 614
Query Expressions Are Just Method Invocations 632
Chapter 16: Building Custom Collections 635
More Collection Interfaces 636
Primary Collection Classes 638
Providing an Indexer 655
Returning Null or an Empty Collection 659
Iterators 660
Chapter 17: Reflection, Attributes, and Dynamic Programming 677
Reflection 678
Attributes 688
Programming with Dynamic Objects 714
Chapter 18: Multithreading 727
Multithreading Basics 730
Working with System.Threading 737
Asynchronous Tasks 745
Canceling a Task 764
The Task-Based Asynchronous Pattern in C# 5.0 770
Executing Loop Iterations in Parallel 794
Running LINQ Queries in Parallel 804
Chapter 19: Thread Synchronization 811
Why Synchronization? 813
Timers 841
Chapter 20: Platform Interoperability and Unsafe Code 845
Using the Windows Runtime Libraries from C# 846
Platform Invoke 849
Pointers and Addresses 862
Executing Unsafe Code via a Delegate 872
Chapter 21: The Common Language Infrastructure 875
Defining the Common Language Infrastructure (CLI) 876
CLI Implementations 877
C# Compilation to Machine Code 879
Runtime 881
Application Domains 887
Assemblies, Manifests, and Modules 887
Common Intermediate Language (CIL) 890
Common Type System (CTS) 891
Common Language Specification (CLS) 891
Base Class Library (BCL) 892
Metadata 892
Appendix A: Downloading and Installing the C# Compiler and CLI Platform 897
Microsoft’s .NET 897
Appendix B: Tic-Tac-Toe Source Code Listing 901
Appendix C: Interfacing with Mutithreading Patterns Prior to the TPL and C# 5.0 907
Asynchronous Programming Model 908
Asynchronous Delegate Invocation 921
The Event-Based Asynchronous Pattern (EAP) 924
Background Worker Pattern 928
Dispatching to the Windows UI 932
Appendix D: Timers Prior to the Async/Await Pattern of C# 5.0 937
Index 943
Index of C# 5.0 Topics 974
Index of C# 4.0 Topics 975
Index of C# 3.0 Topics 984
Erscheint lt. Verlag | 10.12.2012 |
---|---|
Verlagsort | New Jersey |
Sprache | englisch |
Maße | 181 x 229 mm |
Gewicht | 1580 g |
Themenwelt | Mathematik / Informatik ► Informatik ► Programmiersprachen / -werkzeuge |
Informatik ► Software Entwicklung ► Objektorientierung | |
ISBN-10 | 0-321-87758-6 / 0321877586 |
ISBN-13 | 978-0-321-87758-1 / 9780321877581 |
Zustand | Neuware |
Haben Sie eine Frage zum Produkt? |
aus dem Bereich