C# 2010 for Programmers
Prentice Hall (Verlag)
978-0-13-261820-5 (ISBN)
- Titel erscheint in neuer Auflage
- Artikel merken
Written for programmers with a background in C++, Java or other high-level, object-oriented languages, this book applies the Deitel signature live-code approach to teaching programming and explores Microsoft’s C# 2010 language and .NET 4 in depth. The book is updated for Visual Studio® 2010 and C# 4, and presents C# concepts in the context of fully tested programs, complete with syntax shading, detailed line-by-line code descriptions and program outputs. The book features 200+ C# applications with 17,000+ lines of proven C# code, as well as hundreds of programming tips that will help you build robust applications.
Start with a concise introduction to C# fundamentals using an early classes and objects approach, then rapidly move on to more advanced topics, including multithreading, .NET 4, LINQ, WPF, ASP.NET 4, WCF web services and Silverlight®. Along the way you’ll enjoy the Deitels’ classic treatment of object-oriented programming and the OOD/UML® ATM case study, including a complete C# implementation. When you’re finished, you’ll be ready to build next-generation Windows applications, web applications and web services.
Check out the related LiveLessons video product, C# 2010 Fundamentals: Parts I, II and III, containing 20+ hours of video synchronized to this book: www.deitel.com/livelessons.
Practical, example-rich coverage of:
.NET 4, Types, Arrays, Exception Handling
LINQ, Object/Collection Initializers
OOP: Classes, Objects, Inheritance, Polymorphism, Interfaces
WinForms, WPF, XAML, Event Handling
WPF GUI/Graphics/Multimedia
Silverlight®
Lists, Queues, Stacks, Trees
Generic Collections, Methods and Classes
XML®, LINQ to XML
Database, LINQ to SQL
ASP.NET 4.0, ASP.NET AJAX
Web Forms, Web Controls
WCF Web Services
OOD/UML® Case Study
Visit www.deitel.com
For information on Deitel’s Dive Into® training courses offered worldwide visit www.deitel.com/training
To license Deitel book and/or LiveLessons video content for your learning management system, e-mail deitel@deitel.com
Download code examples
Follow Deitel on Twitter® @deitel and Facebook® at www.deitel.com/deitelfan/
To receive updates for this book, subscribe to the free Deitel® Buzz Online e-mail newsletter at www.deitel.com/newsletter/subscribe.html
Testimonials from the Third and Fourth Edition Reviewers
“Takes you from zero to the highest levels of C# programming proficiency. The pedagogical approach and wealth of online material guarantee this book an outstanding place among its peers. The best presentation on inheritance, interfaces and polymorphism I have seen in my 25+ years as a trainer and consultant! Superbly clear.”
—Octavio Hernandez, Microsoft C# MVP, Advanced Bionics
“The ultimate, comprehensive book that teaches you how to program using the latest Microsoft technologies. Excellent explanations, lots of examples, all the necessary theoretical background and all the latest technologies for desktop, web and databases. The best overview of Silverlight.”
—Kirill Osenkov, Visual Studio Languages Team, Microsoft
“Illustrates the best practices of C# programming.”
—Mingsheng Hong, Cornell University
“Excellent introduction to the world of .NET for the beginning C# programmer, using the Deitels’ live-code approach and real-world examples.”
—Bonnie Berent, Microsoft C# MVP
“Shows the practical application of the most recent topics in C# development. A gentle introduction to LINQ and the .NET collection classes; I like it very much! Shows a lot of useful basic techniques and most of the `second level facts’ needed to develop WinForms apps. I like the way you introduce working with databases using LINQ to SQL. Excellent introduction to ASP.NET. A very good introduction to generics. Outstanding chapter on collections; the discussion of the new co- and contra-variance capabilities is by necessity short, but very nice.”
—Octavio Hernandez, Microsoft C# MVP, Advanced Bionics
“The code examples provide a very good start on C# programming. A good job explaining the concepts of classes and objects in plain English. The arrays chapter is well done. A nice introduction to LINQ and Collections. The code examples in the chapter on polymorphism and interfaces are excellent. Important exception-related topics are explained with good examples.”
—Zijiang (James) Yang, Western Michigan University
“Teaches how to `program in the large,’ with material on object-oriented programming and software engineering principles.”
—Mingsheng Hong, Cornell University
“An excellent, true objects-first book. Excellent introduction to data structures and collections. The generics material is a real asset.”
—Gavin Osborne, Saskatchewan Institute of Applied Science and Technology
“Great chapter on polymorphism.”
—Eric Lippert, Microsoft
“Excellent chapter on exceptions. Very good chapter on Winforms GUIs.”
—Marcelo Guerra Hahn, Microsoft
“Updated contents cover the most important additions to the language while maintaining the Deitels’ well-known high-quality. The early introduction to classes and objects is brilliant. I especially like the explanation of properties, and the discussion of value types vs. reference types. [Classes and Objects: A Deeper Look] does a really good job providing good practices for accessing private data and reusing code. The [Data Structures] chapter is very well written. Coverage of ASP.NET is exceptional.”
—José Antonio González Seco, Parliament of Andalusia, Spain
“Perfect for professionals. Thorough introductions to the debugger and LINQ.”
—Vinay Ahuja, Architect, Microsoft Corporation
“The TV/Video Viewer will enthuse readers and help them see how graphics effects can be created easily in WPF.”
—Ged Mead, Microsoft MVP, DevCity.Net
“An excellent introduction to XML, LINQ to XML and related technologies.”—Helena Kotas, Microsoft
“Good overview of relational databases. It hits on the right LINQ to SQL idioms.”
—Alex Turner, Microsoft
“Great overview of producing and consuming web services with WCF.”
—Dan Crevier, Microsoft
[Chapter 24: GUI with Windows Presentation Foundation] “This chapter is very well written. I especially liked your coverage of GUI customization and data bindings, which is very clear.”
—José Antonio González Seco, Parliament of Andalusia, Spain
[Chapter 24: GUI with Windows Presentation Foundation] “Excellent chapter! Everything is laid out right so that every required bit of knowledge is already there when needed.”
—Octavio Hernandez, Microsoft C# MVP, Advanced Bionics
[Chapter 25: WPF Graphics and Multimedia] “An already excellent chapter that got even better! This chapter perfectly complements the previous one, and offers great examples and explanations. The new example on speech synthesis and speech recognition is very nice, and the very first I’ve seen in any C# book to date.”
—Octavio Hernandez, Microsoft C# MVP, Advanced Bionics
[Chapter 26: XML and LINQ to XML]
“Excellent chapter! The presentation of LINQ to XML is fabulous!”
—Octavio Hernandez, Microsoft C# MVP, Advanced Bionics
Paul Deitel and Harvey Deitel are the founders of Deitel & Associates, Inc., the internationally recognized programming languages authoring and corporate-training organization. Millions of people worldwide have used Deitel books and LiveLessons videos to master C#, C++, Java™, C, iPhone app development, Internet and web programming, JavaScript, XML, Visual Basic®, Visual C++®, Perl, Python and more. Paul Deitel is also a Microsoft C# MVP.
Preface xxi Before You Begin xxxiv
Chapter 1: Introduction 1
1.1 Introduction 2
1.2 Microsoft’s Windows® Operating System 2
1.3 C, C++, Objective-C and Java 3
1.4 C# 3
1.5 Extensible Markup Language (XML) 4
1.6 Introduction to Microsoft .NET 4
1.7 The .NET Framework and the Common Language Runtime 4
1.8 Test-Driving the Advanced Painter Application 5
1.9 Introduction to Object Technology 8
1.10 Wrap-Up 10
Chapter 2: Dive Into® Visual C# 2010 Express 11
2.1 Introduction 12
2.2 Overview of the Visual Studio 2010 IDE 12
2.3 Menu Bar and Toolbar 17
2.4 Navigating the Visual Studio IDE 19
2.5 Using Help 24
2.6 Using Visual Programming to Create a Simple Program that Displays Text and an Image 27
2.7 Wrap-Up 38
2.8 Web Resources 39
Chapter 3: Introduction to C# Applications 40
3.1 Introduction 41
3.2 A Simple C# Application: Displaying a Line of Text 41
3.3 Creating a Simple Application in Visual C# Express 46
3.4 Modifying Your Simple C# Application 53
3.5 Formatting Text with Console.Write and Console.WriteLine 56
3.6 Another C# Application: Adding Integers 57
3.7 Arithmetic 59
3.8 Decision Making: Equality and Relational Operators 61
3.9 Wrap-Up 65
Chapter 4: Introduction to Classes and Objects 66
4.1 Introduction 67
4.2 Classes, Objects, Methods, Properties and Instance Variables 67
4.3 Declaring a Class with a Method and Instantiating an Object of a Class 68
4.4 Declaring a Method with a Parameter 72
4.5 Instance Variables and Properties 75
4.6 UML Class Diagram with a Property 80
4.7 Software Engineering with Properties and set and get Accessors 81
4.8 Auto-Implemented Properties 82
4.9 Value Types vs. Reference Types 83
4.10 Initializing Objects with Constructors 84
4.11 Floating-Point Numbers and Type decimal 87
4.12 Wrap-Up 93
Chapter 5: Control Statements: Part 1 94
5.1 Introduction 95
5.2 Control Structures 95
5.3 if Single-Selection Statement 97
5.4 if…else Double-Selection Statement 98
5.5 while Repetition Statement 102
5.6 Counter-Controlled Repetition 103
5.7 Sentinel-Controlled Repetition 107
5.8 Nested Control Statements 112
5.9 Compound Assignment Operators 115
5.10 Increment and Decrement Operators 115
5.11 Simple Types 118
5.12 Wrap-Up 119
Chapter 6: Control Statements: Part 2 120
6.1 Introduction 121
6.2 Essentials of Counter-Controlled Repetition 121
6.3 for Repetition Statement 122
6.4 Examples Using the for Statement 127
6.5 do…while Repetition Statement 131
6.6 switch Multiple-Selection Statement 132
6.7 break and continue Statements 140
6.8 Logical Operators 142
6.9 Wrap-Up 148
Chapter 7: Methods: A Deeper Look 149
7.1 Introduction 150
7.2 Packaging Code in C# 150
7.3 static Methods, static Variables and Class Math 151
7.4 Declaring Methods with Multiple Parameters 154
7.5 Notes on Declaring and Using Methods 157
7.6 Method-Call Stack and Activation Records 158
7.7 Argument Promotion and Casting 159
7.8 The .NET Framework Class Library 160
7.9 Case Study: Random-Number Generation 162
7.10 Case Study: A Game of Chance (Introducing Enumerations) 167
7.11 Scope of Declarations 172
7.12 Method Overloading 174
7.13 Optional Parameters 177
7.14 Named Parameters 178
7.15 Recursion 179
7.16 Passing Arguments: Pass-by-Value vs. Pass-by-Reference 182
7.17 Wrap-Up 185
Chapter 8: Arrays 187
8.1 Introduction 188
8.2 Arrays 188
8.3 Declaring and Creating Arrays 189
8.4 Examples Using Arrays 190
8.5 Case Study: Card Shuffling and Dealing Simulation 199
8.6 foreach Statement 203
8.7 Passing Arrays and Array Elements to Methods 205
8.8 Passing Arrays by Value and by Reference 208
8.9 Case Study: Class GradeBook Using an Array to Store Grades 212
8.10 Multidimensional Arrays 217
8.11 Case Study: GradeBook Using a Rectangular Array 222
8.12 Variable-Length Argument Lists 227
8.13 Using Command-Line Arguments 229
8.14 Wrap-Up 231
Chapter 9: Introduction to LINQ and the List Collection 232
9.1 Introduction 233
9.2 Querying an Array of int Values Using LINQ 234
9.3 Querying an Array of Employee Objects Using LINQ 238
9.4 Introduction to Collections 243
9.5 Querying a Generic Collection Using LINQ 246
9.6 Wrap-Up 248
9.7 Deitel LINQ Resource Center 248
Chapter 10: Classes and Objects: A Deeper Look 249
10.1 Introduction 250
10.2 Time Class Case Study 250
10.3 Controlling Access to Members 254
10.4 Referring to the Current Object’s Members with the this Reference 255
10.5 Indexers 257
10.6 Time Class Case Study: Overloaded Constructors 261
10.7 Default and Parameterless Constructors 267
10.8 Composition 267
10.9 Garbage Collection and Destructors 270
10.10 static Class Members 271
10.11 readonly Instance Variables 275
10.12 Data Abstraction and Encapsulation 276
10.13 Time Class Case Study: Creating Class Libraries 277
10.14 internal Access 282
10.15 Class View and Object Browser 283
10.16 Object Initializers 285
10.17 Time Class Case Study: Extension Methods 288
10.18 Delegates 291
10.19 Lambda Expressions 293
10.20 Anonymous Types 296
10.21 Wrap-Up 298
Chapter 11: Object-Oriented Programming: Inheritance 300
11.1 Introduction 301
11.2 Base Classes and Derived Classes 302
11.3 protected Members 304
11.4 Relationship between Base Classes and Derived Classes 305
11.5 Constructors in Derived Classes 329
11.6 Software Engineering with Inheritance 329
11.7 Class object 330
11.8 Wrap-Up 331
Chapter 12: OOP: Polymorphism, Interfaces and Operator Overloading 332
12.1 Introduction 333
12.2 Polymorphism Examples 335
12.3 Demonstrating Polymorphic Behavior 336
12.4 Abstract Classes and Methods 339
12.5 Case Study: Payroll System Using Polymorphism 341
12.6 sealed Methods and Classes 357
12.7 Case Study: Creating and Using Interfaces 357
12.8 Operator Overloading 368
12.9 Wrap-Up 371
Chapter 13: Exception Handling 372
13.1 Introduction 373
13.2 Example: Divide by Zero without Exception Handling 373
13.3 Example: Handling DivideByZeroExceptions and FormatExceptions 376
13.4 .NET Exception Hierarchy 381
13.5 finally Block 383
13.6 The using Statement 389
13.7 Exception Properties 390
13.8 User-Defined Exception Classes 395
13.9 Wrap-Up 398
Chapter 14: Graphical User Interfaces with Windows Forms: Part 1 399
14.1 Introduction 400
14.2 Windows Forms 401
14.3 Event Handling 403
14.4 Control Properties and Layout 410
14.5 Labels, TextBoxes and Buttons 414
14.6 GroupBoxes and Panels 417
14.7 CheckBoxes and RadioButtons 420
14.8 PictureBoxes 428
14.9 ToolTips 430
14.10 NumericUpDown Control 432
14.11 Mouse-Event Handling 434
14.12 Keyboard-Event Handling 437
14.13 Wrap-Up 440
Chapter 15: Graphical User Interfaces with Windows Forms: Part 2 441
15.1 Introduction 442
15.2 Menus 442
15.3 MonthCalendar Control 451
15.4 DateTimePicker Control 452
15.5 LinkLabel Control 455
15.6 ListBox Control 459
15.7 CheckedListBox Control 463
15.8 ComboBox Control 466
15.9 TreeView Control 470
15.10 ListView Control 475
15.11 TabControl Control 481
15.12 Multiple Document Interface (MDI) Windows 486
15.13 Visual Inheritance 493
15.14 User-Defined Controls 498
15.15 Wrap-Up 502
Chapter 16: Strings and Characters 504
16.1 Introduction 505
16.2 Fundamentals of Characters and Strings 506
16.3 string Constructors 507
16.4 string Indexer, Length Property and CopyTo Method 508
16.5 Comparing strings 509
16.6 Locating Characters and Substrings in strings 512
16.7 Extracting Substrings from strings 515
16.8 Concatenating strings 516
16.9 Miscellaneous string Methods 517
16.10 Class StringBuilder 518
16.11 Length and Capacity Properties, EnsureCapacity Method and Indexer of Class StringBuilder 519
16.12 Append and AppendFormat Methods of Class StringBuilder 521
16.13 Insert, Remove and Replace Methods of Class StringBuilder 523
16.14 Char Methods 526
16.15 Regular Expressions 528
16.16 Wrap-Up 542
Chapter 17: Files and Streams 543
17.1 Introduction 544
17.2 Data Hierarchy 544
17.3 Files and Streams 546
17.4 Classes File and Directory 547
17.5 Creating a Sequential-Access Text File 556
17.6 Reading Data from a Sequential-Access Text File 565
17.7 Case Study: Credit Inquiry Program 569
17.8 Serialization 575
17.9 Creating a Sequential-Access File Using Object Serialization 576
17.10 Reading and Deserializing Data from a Binary File 580
17.11 Wrap-Up 582
Chapter 18: Databases and LINQ 584
18.1 Introduction 585
18.2 Relational Databases 586
18.3 A Books Database 587
18.4 LINQ to SQL 590
18.5 Querying a Database with LINQ 591
18.6 Dynamically Binding Query Results 599
18.7 Retrieving Data from Multiple Tables with LINQ 602
18.8 Creating a Master/Detail View Application 608
18.9 Address Book Case Study 613
18.10 Tools and Web Resources 618
18.11 Wrap-Up 619
Chapter 19: Web App Development with ASP.NET 620
19.1 Introduction 621
19.2 Web Basics 622
19.3 Multitier Application Architecture 623
19.4 Your First Web Application 625
19.5 Standard Web Controls: Designing a Form 636
19.6 Validation Controls 641
19.7 Session Tracking 647
19.8 Case Study: Database-Driven ASP.NET Guestbook 657
19.9 Case Study: ASP.NET AJAX 664
19.10 Case Study: Password-Protected Books Database Application 664
19.11 Wrap-Up 664
Chapter 20: Searching and Sorting 666
20.1 Introduction 667
20.2 Searching Algorithms 667
20.3 Sorting Algorithms 677
20.4 Summary of the Efficiency of Searching and Sorting Algorithms 691
20.5 Wrap-Up 691
Chapter 21: Data Structures 692
21.1 Introduction 693
21.2 Simple-Type structs, Boxing and Unboxing 693
21.3 Self-Referential Classes 694
21.4 Linked Lists 695
21.5 Stacks 708
21.6 Queues 712
21.7 Trees 715
21.8 Wrap-Up 728
Chapter 22: Generics 730
22.1 Introduction 731
22.2 Motivation for Generic Methods 732
22.3 Generic-Method Implementation 734
22.4 Type Constraints 737
22.5 Overloading Generic Methods 739
22.6 Generic Classes 740
22.7 Wrap-Up 749
Chapter 23: Collections 751
23.1 Introduction 752
23.2 Collections Overview 752
23.3 Class Array and Enumerators 755
23.4 Nongeneric Collections 758
23.5 Generic Collections 770
23.6 Covariance and Contravariance for Generic Types 776
23.7 Wrap-Up 778
Chapter 24: GUI with Windows Presentation Foundation 780
24.1 Introduction 781
24.2 Windows Presentation Foundation (WPF) 781
24.3 XML Basics 783
24.4 Structuring Data 786
24.5 XML Namespaces 791
24.6 Declarative GUI Programming Using XAML 795
24.7 Creating a WPF Application in Visual C# Express 796
24.8 Laying Out Controls 798
24.9 Event Handling 804
24.10 Commands and Common Application Tasks 812
24.11 WPF GUI Customization 816
24.12 Using Styles to Change the Appearance of Controls 817
24.13 Customizing Windows 823
24.14 Defining a Control’s Appearance with Control Templates 826
24.15 Data-Driven GUIs with Data Binding 831
24.16 Wrap-Up 837
24.17 Web Resources 838
Chapter 25: WPF Graphics and Multimedia 839
25.1 Introduction 840
25.2 Controlling Fonts 840
25.3 Basic Shapes 842
25.4 Polygons and Polylines 843
25.5 Brushes 847
25.6 Transforms 853
25.7 WPF Customization: A Television GUI 855
25.8 Animations 864
25.9 (Optional) 3-D Objects and Transforms 867
25.10 Speech Synthesis and Speech Recognition 873
25.11 Wrap-Up 880
Chapter 26: XML and LINQ to XML 881
26.1 Introduction 882
26.2 Document Type Definitions (DTDs) 882
26.3 W3C XML Schema Documents 886
26.4 Extensible Stylesheet Language and XSL Transformations 893
26.5 LINQ to XML: Document Object Model (DOM) 902
26.6 LINQ to XML Class Hierarchy 906
26.7 LINQ to XML: Namespaces and Creating Documents 915
26.8 XSLT with Class XslCompiledTransform 918
26.9 Wrap-Up 920
26.10 Web Resources 920
Chapter 27: Web App Development with ASP.NET: A Deeper Look 921
27.1 Introduction 922
27.2 Case Study: Password-Protected Books Database Application 922
27.3 ASP.NET Ajax 940
27.4 Wrap-Up 947
Chapter 28: Web Services 948
28.1 Introduction 949
28.2 WCF Services Basics 950
28.3 Simple Object Access Protocol (SOAP) 950
28.4 Representational State Transfer (REST) 951
28.5 JavaScript Object Notation (JSON) 951
28.6 Publishing and Consuming SOAP-Based WCF Web Services 952
28.7 Publishing and Consuming REST-Based XML Web Services 960
28.8 Publishing and Consuming REST-Based JSON Web Services 964
28.9 Blackjack Web Service: Using Session Tracking in a SOAP-Based WCF Web Service 968
28.10 Airline Reservation Web Service: Database Access and Invoking a Service from ASP.NET 982
28.11 Equation Generator: Returning User-Defined Types 986
28.12 Wrap-Up 998
28.13 Deitel Web Services Resource Centers 999
Chapter 29: Silverlight and Rich Internet Applications 1000
29.1 Introduction 1001
29.2 Platform Overview 1001
29.3 Silverlight Runtime and Tools Installation 1002
29.4 Building a Silverlight WeatherViewer Application 1002
29.5 Animations and the FlickrViewer 1016
29.6 Images and Deep Zoom 1025
29.7 Audio and Video 1038
29.8 Wrap-Up 1043
Chapter 30: ATM Case Study, Part 1: Object-Oriented Design with the UML 1044
30.1 Introduction 1045
30.2 Examining the ATM Requirements Document 1045
30.3 Identifying the Classes in the ATM Requirements Document 1053
30.4 Identifying Class Attributes 1060
30.5 Identifying Objects’ States and Activities 1064
30.6 Identifying Class Operations 1068
30.7 Identifying Collaboration Among Objects 1075
30.8 Wrap-Up 1082
Chapter 31: ATM Case Study, Part 2: Implementing an Object-Oriented Design 1087
31.1 Introduction 1088
31.2 Starting to Program the Classes of the ATM System 1088
31.3 Incorporating Inheritance and Polymorphism into the ATM System 1093
31.4 ATM Case Study Implementation 1100
31.5 Wrap-Up 1124
Appendix A: Operator Precedence Chart 1127
Appendix B: Simple Types 1129
Appendix C: ASCII Character Set 1131
Appendix D: Number Systems 1132
D.1 Introduction 1133
D.2 Abbreviating Binary Numbers as Octal and Hexadecimal Numbers 1136
D.3 Converting Octal and Hexadecimal Numbers to Binary Numbers 1137
D.4 Converting from Binary, Octal or Hexadecimal to Decimal 1137
D.5 Converting from Decimal to Binary, Octal or Hexadecimal 1138
D.6 Negative Binary Numbers: Two’s Complement Notation 1140
Appendix E: UML 2: Additional Diagram Types 1142
E.1 Introduction 1142
E.2 Additional Diagram Types 1142
Appendix F: Unicode® 1144
F.1 Introduction 1145
F.2 Unicode Transformation Formats 1146
F.3 Characters and Glyphs 1147
F.4 Advantages/Disadvantages of Unicode 1147
F.5 Using Unicode 1148
F.6 Character Ranges 1150
Appendix G: Using the Visual C# 2010 Debugger 1152
G.1 Introduction 1153
G.2 Breakpoints and the Continue Command 1153
G.3 DataTips and Visualizers 1159
G.4 The Locals and Watch Windows 1160
G.5 Controlling Execution Using the Step Into, Step Over, Step Out and Continue Commands 1163
G.6 Other Debugging Features 1166
Index 1170
Erscheint lt. Verlag | 11.11.2010 |
---|---|
Reihe/Serie | Deitel Developer Series |
Verlagsort | Upper Saddle River |
Sprache | englisch |
Maße | 181 x 232 mm |
Gewicht | 1740 g |
Themenwelt | Mathematik / Informatik ► Informatik ► Programmiersprachen / -werkzeuge |
Informatik ► Software Entwicklung ► Objektorientierung | |
ISBN-10 | 0-13-261820-6 / 0132618206 |
ISBN-13 | 978-0-13-261820-5 / 9780132618205 |
Zustand | Neuware |
Haben Sie eine Frage zum Produkt? |
aus dem Bereich