Learn how to build winning C# applications, start to finish, using the Deitels' proven methodology and signature Live-Code(tm) Approach! This new edition includes extensive use of Visual Studio 2005's new visual programming tools that tremendously reduce the amount of code programmers need to write
Visual C# How to Program
✍ Scribed by Deitel, Paul;Deitel, Harvey
- Publisher
- Pearson
- Year
- 2016
- Tongue
- English
- Leaves
- 1055
- Category
- Library
No coin nor oath required. For personal study only.
✦ Synopsis
For all basic-to-intermediate level courses in Visual C# programming.An informative, engaging, challenging and entertaining introduction to Visual C#Created by world-renowned programming instructors Paul and Harvey Deitel,Visual C# How to Program,Sixth Editionintroduces students to the world of desktop, mobile and web app development with Microsoft's(R) Visual C#(R) programming language. Students will use .NET platform and the Visual Studio(R) Integrated Development Environment to write, test, and debug applications and run them on a wide variety of Windows(R) devices. At the heart of the book is the Deitel signature live-code approach--rather than using code snippets, the authors present concepts in the context of complete working programs followed by sample executions. Students begin by getting comfortable with the Visual Studio Community edition IDE and basic C# syntax. Next, they build their skills one step at a time, mastering control structures, classes, objects, methods, variables, arrays, and the core techniques of object-oriented programming. With this strong foundation in place, the authors introduce more sophisticated techniques, including searching, sorting, data structures, generics, and collections. Additional practice is provided through a broad range of example programs and exercises selected from computer science, business, education, social issues, personal utilities, sports, mathematics, puzzles, simulation, game playing, graphics, multimedia and many other areas.
✦ Table of Contents
Cover......Page 1
Title Page......Page 2
Copyright Page......Page 5
Contents......Page 8
Preface......Page 24
Before You Begin......Page 38
1 Introduction to Computers, the Internet and Visual C# 41......Page 42
1.2 Computers and the Internet in Industry and Research 42......Page 43
1.3.1 Moore’s Law 45......Page 46
1.3.2 Computer Organization 46......Page 47
1.4 Data Hierarchy 47......Page 48
1.5 Machine Languages, Assembly Languages and High-Level Languages 50......Page 51
1.6 Object Technology 51......Page 52
1.7 Internet and World Wide Web 53......Page 54
1.8 C# 55......Page 56
1.8.4 Generic and Functional Programming 56......Page 57
1.8.8 Asynchronous Programming with async and await 57......Page 58
1.8.9 Other Key Programming Languages 58......Page 59
1.9.2 Common Language Runtime 60......Page 61
1.10 Microsoft’s Windows® Operating System 61......Page 62
1.12 Painter Test-Drive in Visual Studio Community 63......Page 64
2 Introduction to Visual Studio and Visual Programming 73......Page 74
2.2.1 Introduction to Visual Studio Community 2015 74......Page 75
2.2.3 Links on the Start Page 75......Page 76
2.2.4 Creating a New Project 76......Page 77
2.2.5 New Project Dialog and Project Templates 77......Page 78
2.2.6 Forms and Controls 78......Page 79
2.3 Menu Bar and Toolbar 79......Page 80
2.4 Navigating the Visual Studio IDE 82......Page 83
2.4.1 Solution Explorer 83......Page 84
2.4.3 Properties Window 84......Page 85
2.5 Help Menu and Context-Sensitive Help 86......Page 87
2.6 Visual Programming: Creating a Simple App that Displays Text and an Image 87......Page 88
2.7 Wrap-Up 96......Page 97
2.8 Web Resources 97......Page 98
3 Introduction to C# App Programming 105......Page 106
3.2 Simple App: Displaying a Line of Text 106......Page 107
3.2.1 Comments 107......Page 108
3.2.2 using Directive 108......Page 109
3.2.4 Class Declaration 109......Page 110
3.2.6 Displaying a Line of Text 111......Page 112
3.3.1 Creating the Console App 112......Page 113
3.3.3 Writing Code and Using IntelliSense 114......Page 115
3.3.4 Compiling and Running the App 116......Page 117
3.4 Modifying Your Simple C# App 117......Page 118
3.4.2 Displaying Multiple Lines of Text with a Single Statement 118......Page 119
3.5 String Interpolation 120......Page 121
3.6 Another C# App: Adding Integers 121......Page 122
3.6.1 Declaring the int Variable number1 122......Page 123
3.6.4 Reading a Value into Variable number1 123......Page 124
3.6.6 Summing number1 and number2 124......Page 125
3.7 Memory Concepts 125......Page 126
3.8 Arithmetic 126......Page 127
3.8.3 Rules of Operator Precedence 127......Page 128
3.8.4 Sample Algebraic and C# Expressions 128......Page 129
3.9 Decision Making: Equality and Relational Operators 129......Page 130
3.10 Wrap-Up 134......Page 135
4 Introduction to Classes, Objects, Methods and strings 146......Page 147
4.1 Introduction 147......Page 148
4.2.1 Instantiating an Object—Keyword new 148......Page 149
4.2.3 Inputting a Name from the User 149......Page 150
4.3.1 Account Class Declaration 150......Page 151
4.3.3 Instance Variable name of Type string 151......Page 152
4.3.4 SetName Method 152......Page 153
4.3.5 GetName Method 154......Page 155
4.3.7 Account UML Class Diagram 155......Page 156
4.4 Creating, Compiling and Running a Visual C# Project with Two Classes 156......Page 157
4.5 Software Engineering with Set and Get Methods 157......Page 158
4.6.1 Class AccountTest Using Account’s Name Property 158......Page 159
4.6.2 Account Class with an Instance Variable and a Property 160......Page 161
4.7 Auto-Implemented Properties 162......Page 163
4.8.1 Declaring an Account Constructor for Custom Object Initialization 163......Page 164
4.8.2 Class AccountTest: Initializing Account Objects When They’re Created 164......Page 165
4.9.1 Account Class with a decimal balance Instance Variable 166......Page 167
4.9.2 AccountTest Class That Uses Account Objects with Balances 169......Page 170
4.10 Wrap-Up 173......Page 174
5 Algorithm Development and Control Statements: Part 1 182......Page 183
5.1 Introduction 183......Page 184
5.3 Pseudocode 184......Page 185
5.4.1 Sequence Structure 185......Page 186
5.4.2 Selection Statements 186......Page 187
5.5 if Single-Selection Statement 187......Page 188
5.6 if…else Double-Selection Statement 188......Page 189
5.6.1 Nested if…else Statements 189......Page 190
5.6.3 Blocks 191......Page 192
5.6.4 Conditional Operator (?:) 192......Page 193
5.7 Student Class: Nested if…else Statements 193......Page 194
5.8 while Iteration Statement 196......Page 197
5.9.1 Pseudocode Algorithm with Counter-Controlled Iteration 197......Page 198
5.9.2 Implementing Counter-Controlled Iteration 198......Page 199
5.9.3 Integer Division and Truncation 200......Page 201
5.10.1 Top-Down, Stepwise Refinement: The Top and First Refinement 201......Page 202
5.10.2 Second Refinement 202......Page 203
5.10.3 Implementing Sentinel-Controlled Iteration 204......Page 205
5.10.4 Program Logic for Sentinel-Controlled Iteration 205......Page 206
5.10.6 Converting Between Simple Types Explicitly and Implicitly 206......Page 207
5.10.7 Formatting Floating-Point Numbers 207......Page 208
5.11.1 Problem Statement 208......Page 209
5.11.4 Top-Down, Stepwise Refinement: Second Refinement 209......Page 210
5.11.5 Complete Second Refinement of the Pseudocode 210......Page 211
5.11.6 App That Implements the Pseudocode Algorithm 211......Page 212
5.13 Increment and Decrement Operators 213......Page 214
5.13.1 Prefix Increment vs. Postfix Increment 214......Page 215
5.13.2 Simplifying Increment Statements 215......Page 216
5.14 Simple Types 216......Page 217
5.15 Wrap-Up 217......Page 218
6 Control Statements: Part 2 232......Page 233
6.2 Essentials of Counter-Controlled Iteration 233......Page 234
6.3 for Iteration Statement 235......Page 236
6.3.3 Scope of a for Statement’s Control Variable 236......Page 237
6.3.5 Placing Arithmetic Expressions in a for Statement’s Header 237......Page 238
6.4 Examples Using the for Statement 238......Page 239
6.5 App: Summing Even Integers 239......Page 240
6.6 App: Compound-Interest Calculations 240......Page 241
6.6.1 Performing the Interest Calculations with Math Method pow 241......Page 242
6.6.2 Formatting with Field Widths and Alignment 242......Page 243
6.6.3 Caution: Do Not Use float or double for Monetary Amounts 243......Page 244
6.7 do…while Iteration Statement 244......Page 245
6.8.1 Using a switch Statement to Count A, B, C, D and F Grades. 245......Page 246
6.8.2 switch Statement UML Activity Diagram 249......Page 250
6.8.3 Notes on the Expression in Each case of a switch 250......Page 251
6.9 Class AutoPolicy Case Study: strings in switch Statements 251......Page 252
6.10.1 break Statement 253......Page 254
6.10.2 continue Statement 254......Page 255
6.11 Logical Operators 255......Page 256
6.11.2 Conditional OR (||) Operator 256......Page 257
6.11.4 Boolean Logical AND (&) and Boolean Logical OR (|) Operators 257......Page 258
6.11.6 Logical Negation (!) Operator 258......Page 259
6.11.7 Logical Operators Example 259......Page 260
6.12 Structured-Programming Summary 261......Page 262
6.13 Wrap-Up 266......Page 267
7 Methods: A Deeper Look 277......Page 278
7.1 Introduction 278......Page 279
7.2.1 Modularizing Programs 279......Page 280
7.3 static Methods, static Variables and Class Math 280......Page 281
7.3.1 Math Class Methods 281......Page 282
7.3.3 Why Is Main Declared static? 282......Page 283
7.4 Methods with Multiple Parameters 283......Page 284
7.4.3 Assembling strings with Concatenation 285......Page 286
7.4.4 Breaking Apart Large string Literals 286......Page 287
7.5 Notes on Using Methods 287......Page 288
7.6 Argument Promotion and Casting 288......Page 289
7.6.2 Sometimes Explicit Casts Are Required 289......Page 290
7.7 The .NET Framework Class Library 290......Page 291
7.8.2 Generating a Random Integer 292......Page 293
7.8.6 Rolling a Six-Sided Die 293......Page 294
7.8.7 Scaling and Shifting Random Numbers 296......Page 297
7.9 Case Study: A Game of Chance; Introducing Enumerations 297......Page 298
7.9.2 Method Main’s Local Variables 300......Page 301
7.9.6 Underlying Type of an enum 301......Page 302
7.10 Scope of Declarations 302......Page 303
7.11.2 Stack Frames 305......Page 306
7.11.5 Method-Call Stack in Action 306......Page 307
7.12.1 Declaring Overloaded Methods 309......Page 310
7.12.2 Distinguishing Between Overloaded Methods 310......Page 311
7.13 Optional Parameters 311......Page 312
7.14 Named Parameters 312......Page 313
7.15 C# 6 Expression-Bodied Methods and Properties 313......Page 314
7.16.2 Recursive Factorial Calculations 314......Page 315
7.16.3 Implementing Factorial Recursively 315......Page 316
7.17 Value Types vs. Reference Types 317......Page 318
7.18 Passing Arguments By Value and By Reference 318......Page 319
7.18.1 ref and out Parameters 319......Page 320
7.18.2 Demonstrating ref, out and Value Parameters 320......Page 321
7.19 Wrap-Up 322......Page 323
8 Arrays; Introduction to Exception Handling 339......Page 340
8.1 Introduction 340......Page 341
8.2 Arrays 341......Page 342
8.3 Declaring and Creating Arrays 342......Page 343
8.4.1 Creating and Initializing an Array 343......Page 344
8.4.2 Using an Array Initializer 344......Page 345
8.4.3 Calculating a Value to Store in Each Array Element 345......Page 346
8.4.5 Iterating Through Arrays with foreach 347......Page 348
8.4.6 Using Bar Charts to Display Array Data Graphically; Introducing Type Inference with var 349......Page 350
8.4.7 Using the Elements of an Array as Counters 352......Page 353
8.5 Using Arrays to Analyze Survey Results; Intro to Exception Handling 353......Page 354
8.5.1 Summarizing the Results 354......Page 355
8.5.4 Executing the catch Block 355......Page 356
8.6.1 Class Card and Getter-Only Auto-Implemented Properties 356......Page 357
8.6.2 Class DeckOfCards 357......Page 358
8.6.3 Shuffling and Dealing Cards 360......Page 361
8.7 Passing Arrays and Array Elements to Methods 361......Page 362
8.8 Case Study: GradeBook Using an Array to Store Grades 363......Page 364
8.9.1 Rectangular Arrays 369......Page 370
8.9.2 Jagged Arrays 370......Page 371
8.9.3 Two-Dimensional Array Example: Displaying Element Values 371......Page 372
8.10 Case Study: GradeBook Using a Rectangular Array 374......Page 375
8.11 Variable-Length Argument Lists 380......Page 381
8.12 Using Command-Line Arguments 382......Page 383
8.13 (Optional) Passing Arrays by Value and by Reference 384......Page 385
8.14 Wrap-Up 388......Page 389
9 Introduction to LINQ and the List Collection 410......Page 411
9.1 Introduction 411......Page 412
9.2 Querying an Array of int Values Using LINQ 412......Page 413
9.2.1 The from Clause 414......Page 415
9.2.5 The orderby Clause 415......Page 416
9.3 Querying an Array of Employee Objects Using LINQ 416......Page 417
9.3.5 Creating New Types in the select Clause of a LINQ Query 420......Page 421
9.4.1 List
9.4.2 Dynamically Resizing a List
9.5 Querying the Generic List Collection Using LINQ 426......Page 427
9.5.4 Collection Initializers 428......Page 429
9.7 Deitel LINQ Resource Center 429......Page 430
10 Classes and Objects: A Deeper Look 434......Page 435
10.2 Time Class Case Study; Throwing Exceptions 435......Page 436
10.2.1 Time1 Class Declaration 436......Page 437
10.2.2 Using Class Time1 437......Page 438
10.3 Controlling Access to Members 439......Page 440
10.4 Referring to the Current Object’s Members with the this Reference 440......Page 441
10.5.1 Class Time2 with Overloaded Constructors 442......Page 443
10.5.2 Using Class Time2’s Overloaded Constructors 446......Page 447
10.6 Default and Parameterless Constructors 448......Page 449
10.7.1 Class Date 449......Page 450
10.7.2 Class Employee 451......Page 452
10.7.3 Class EmployeeTest 452......Page 453
10.9 static Class Members 453......Page 454
10.10 readonly Instance Variables 457......Page 458
10.11.1 Using the Class View Window 458......Page 459
10.11.2 Using the Object Browser 459......Page 460
10.13 Operator Overloading; Introducing struct 460......Page 461
10.13.2 Value Type ComplexNumber 461......Page 462
10.13.3 Class ComplexTest 463......Page 464
10.14 Time Class Case Study: Extension Methods 464......Page 465
10.15 Wrap-Up 467......Page 468
11 Object-Oriented Programming: Inheritance 475......Page 476
11.1 Introduction 476......Page 477
11.2 Base Classes and Derived Classes 477......Page 478
11.3 protected Members 479......Page 480
11.4 Relationship between Base Classes and Derived Classes 480......Page 481
11.4.1 Creating and Using a CommissionEmployee Class 481......Page 482
11.4.2 Creating a BasePlusCommissionEmployee Class without Using Inheritance 485......Page 486
11.4.3 Creating a CommissionEmployee–BasePlusCommissionEmployee Inheritance Hierarchy 490......Page 491
11.4.4 CommissionEmployee–BasePlusCommissionEmployee Inheritance Hierarchy Using protected Instance Variables 493......Page 494
11.4.5 CommissionEmployee–BasePlusCommissionEmployee Inheritance Hierarchy Using private Instance Variables 496......Page 497
11.6 Software Engineering with Inheritance 500......Page 501
11.7 Class object 501......Page 502
11.8 Wrap-Up 502......Page 503
12 OOP: Polymorphism and Interfaces 508......Page 509
12.1 Introduction 509......Page 510
12.2 Polymorphism Examples 511......Page 512
12.3 Demonstrating Polymorphic Behavior 512......Page 513
12.4 Abstract Classes and Methods 515......Page 516
12.5 Case Study: Payroll System Using Polymorphism 517......Page 518
12.5.1 Creating Abstract Base Class Employee 518......Page 519
12.5.2 Creating Concrete Derived Class SalariedEmployee 520......Page 521
12.5.3 Creating Concrete Derived Class HourlyEmployee 522......Page 523
12.5.4 Creating Concrete Derived Class CommissionEmployee 523......Page 524
12.5.5 Creating Indirect Concrete Derived Class BasePlusCommissionEmployee 525......Page 526
12.5.6 Polymorphic Processing, Operator is and Downcasting 526......Page 527
12.5.7 Summary of the Allowed Assignments Between Base-Class and Derived-Class Variables 531......Page 532
12.6 sealed Methods and Classes 532......Page 533
12.7 Case Study: Creating and Using Interfaces 533......Page 534
12.7.1 Developing an IPayable Hierarchy 534......Page 535
12.7.3 Creating Class Invoice 536......Page 537
12.7.4 Modifying Class Employee to Implement Interface IPayable 538......Page 539
12.7.5 Using Interface IPayable to Process Invoices and Employees Polymorphically 539......Page 540
12.7.6 Common Interfaces of the .NET Framework Class Library 541......Page 542
12.8 Wrap-Up 542......Page 543
13 Exception Handling: A Deeper Look 547......Page 548
13.1 Introduction 548......Page 549
13.2 Example: Divide by Zero without Exception Handling 549......Page 550
13.2.1 Dividing By Zero 550......Page 551
13.2.2 Enter a Non-Numeric Denominator 551......Page 552
13.3 Example: Handling DivideByZeroExceptions and FormatExceptions 552......Page 553
13.3.2 Catching Exceptions 554......Page 555
13.3.3 Uncaught Exceptions 555......Page 556
13.3.5 Flow of Control When Exceptions Occur 556......Page 557
13.4.1 Class SystemException 557......Page 558
13.4.2 Which Exceptions Might a Method Throw? 558......Page 559
13.5.1 Moving Resource-Release Code to a finally Block 559......Page 560
13.5.2 Demonstrating the finally Block 560......Page 561
13.5.4 Rethrowing Exceptions 564......Page 565
13.5.5 Returning After a finally Block 565......Page 566
13.6 The using Statement 566......Page 567
13.7.1 Property InnerException 567......Page 568
13.7.3 Demonstrating Exception Properties and Stack Unwinding 568......Page 569
13.7.4 Throwing an Exception with an InnerException 570......Page 571
13.8 User-Defined Exception Classes 571......Page 572
13.9.1 Null-Conditional Operator (?.) 575......Page 576
13.9.3 Nullable Types 576......Page 577
13.10 Exception Filters and the C# 6 when Clause 577......Page 578
13.11 Wrap-Up 578......Page 579
14 Graphical User Interfaces with Windows Forms: Part 1 584......Page 585
14.1 Introduction 585......Page 586
14.2 Windows Forms 586......Page 587
14.3 Event Handling 588......Page 589
14.3.1 A Simple Event-Driven GUI 589......Page 590
14.3.2 Auto-Generated GUI Code 591......Page 592
14.3.3 Delegates and the Event-Handling Mechanism 593......Page 594
14.3.4 Another Way to Create Event Handlers 594......Page 595
14.3.5 Locating Event Information 595......Page 596
14.4 Control Properties and Layout 596......Page 597
14.4.1 Anchoring and Docking 597......Page 598
14.4.2 Using Visual Studio To Edit a GUI’s Layout 599......Page 600
14.5 Labels, TextBoxes and Buttons 600......Page 601
14.6 GroupBoxes and Panels 603......Page 604
14.7.1 CheckBoxes 606......Page 607
14.7.2 Combining Font Styles with Bitwise Operators 608......Page 609
14.7.3 RadioButtons 609......Page 610
14.8 PictureBoxes 614......Page 615
14.9 ToolTips 617......Page 618
14.10 NumericUpDown Control 618......Page 619
14.11 Mouse-Event Handling 621......Page 622
14.12 Keyboard-Event Handling 623......Page 624
14.13 Wrap-Up 627......Page 628
15 Graphical User Interfaces with Windows Forms: Part 2 637......Page 638
15.2 Menus 638......Page 639
15.3 MonthCalendar Control 648......Page 649
15.4 DateTimePicker Control 649......Page 650
15.5 LinkLabel Control 652......Page 653
15.6 ListBox Control 655......Page 656
15.7 CheckedListBox Control 660......Page 661
15.8 ComboBox Control 663......Page 664
15.9 TreeView Control 667......Page 668
15.10 ListView Control 673......Page 674
15.11 TabControl Control 679......Page 680
15.12 Multiple Document Interface (MDI) Windows 683......Page 684
15.13 Visual Inheritance 691......Page 692
15.14 User-Defined Controls 696......Page 697
15.15 Wrap-Up 699......Page 700
16 Strings and Characters: A Deeper Look 707......Page 708
16.1 Introduction 708......Page 709
16.2 Fundamentals of Characters and Strings 709......Page 710
16.3 string Constructors 710......Page 711
16.4 string Indexer, Length Property and CopyTo Method 711......Page 712
16.5 Comparing strings 712......Page 713
16.6 Locating Characters and Substrings in strings 716......Page 717
16.7 Extracting Substrings from strings 719......Page 720
16.9 Miscellaneous string Methods 720......Page 721
16.10 Class StringBuilder 722......Page 723
16.11 Length and Capacity Properties, EnsureCapacity Method and Indexer of Class StringBuilder 723......Page 724
16.12 Append and AppendFormat Methods of Class StringBuilder 725......Page 726
16.13 Insert, Remove and Replace Methods of Class StringBuilder 727......Page 728
16.14 Char Methods 730......Page 731
16.16 Wrap-Up 732......Page 733
17 Files and Streams 739......Page 740
17.2 Files and Streams 740......Page 741
17.3 Creating a Sequential-Access Text File 741......Page 742
17.4 Reading Data from a Sequential-Access Text File 750......Page 751
17.5 Case Study: Credit-Inquiry Program 754......Page 755
17.6 Serialization 759......Page 760
17.7 Creating a Sequential-Access File Using Object Serialization 760......Page 761
17.8 Reading and Deserializing Data from a Binary File 764......Page 765
17.9 Classes File and Directory 767......Page 768
17.9.1 Demonstrating Classes File and Directory 768......Page 769
17.9.2 Searching Directories with LINQ 771......Page 772
17.10 Wrap-Up 775......Page 776
18 Searching and Sorting 782......Page 783
18.1 Introduction 783......Page 784
18.2.1 Linear Search 784......Page 785
18.2.2 Binary Search 788......Page 789
18.3 Sorting Algorithms 792......Page 793
18.3.1 Selection Sort 793......Page 794
18.3.2 Insertion Sort 796......Page 797
18.3.3 Merge Sort 800......Page 801
18.4 Summary of the Efficiency of Searching and Sorting Algorithms 806......Page 807
18.5 Wrap-Up 807......Page 808
19 Custom Linked Data Structures 812......Page 813
19.2 Simple-Type structs, Boxing and Unboxing 813......Page 814
19.3 Self-Referential Classes 814......Page 815
19.4 Linked Lists 815......Page 816
19.5 Stacks 828......Page 829
19.6 Queues 832......Page 833
19.7 Trees 835......Page 836
19.7.1 Binary Search Tree of Integer Values 836......Page 837
19.7.2 Binary Search Tree of IComparable Objects 843......Page 844
19.8 Wrap-Up 849......Page 850
20 Generics 855......Page 856
20.1 Introduction 856......Page 857
20.2 Motivation for Generic Methods 857......Page 858
20.3 Generic-Method Implementation 859......Page 860
20.4.2 Specifying Type Constraints 862......Page 863
20.6 Generic Classes 865......Page 866
20.7 Wrap-Up 875......Page 876
21 Generic Collections; Functional Programming with LINQ/PLINQ 881......Page 882
21.1 Introduction 882......Page 883
21.2 Collections Overview 884......Page 885
21.3 Class Array and Enumerators 886......Page 887
21.3.1 C# 6 using static Directive 888......Page 889
21.3.6 Array Method GetEnumerator and Interface IEnumerator 889......Page 890
21.4 Dictionary Collections 890......Page 891
21.4.1 Dictionary Fundamentals 891......Page 892
21.4.2 Using the SortedDictionary Collection 892......Page 893
21.5 Generic LinkedList Collection 896......Page 897
21.6 C# 6 Null Conditional Operator ?[] 900......Page 901
21.8 Delegates 901......Page 902
21.8.2 Declaring a Delegate Variable 903......Page 904
21.9 Lambda Expressions 904......Page 905
21.9.1 Expression Lambdas 906......Page 907
21.10 Introduction to Functional Programming 907......Page 908
21.11 Functional Programming with LINQ Method-Call Syntax and Lambdas 909......Page 910
21.11.2 Aggregate Extension Method for Reduction Operations 912......Page 913
21.11.3 The Where Extension Method for Filtering Operations 914......Page 915
21.12 PLINQ: Improving LINQ to Objects Performance with Multicore 915......Page 916
21.13 (Optional) Covariance and Contravariance for Generic Types 919......Page 920
21.14 Wrap-Up 921......Page 922
22 Databases and LINQ 933......Page 934
22.1 Introduction 934......Page 935
22.2 Relational Databases 935......Page 936
22.3 A Books Database 936......Page 937
22.4 LINQ to Entities and the ADO.NET Entity Framework 940......Page 941
22.5 Querying a Database with LINQ 941......Page 942
22.5.1 Creating the ADO.NET Entity Data Model Class Library 943......Page 944
22.5.2 Creating a Windows Forms Project and Configuring It to Use the Entity Data Model 947......Page 948
22.5.3 Data Bindings Between Controls and the Entity Data Model 949......Page 950
22.6 Dynamically Binding Query Results 955......Page 956
22.6.1 Creating the Display Query Results GUI 956......Page 957
22.6.2 Coding the Display Query Results App 957......Page 958
22.7 Retrieving Data from Multiple Tables with LINQ 959......Page 960
22.8.1 Creating the Master/Detail GUI 965......Page 966
22.8.2 Coding the Master/Detail App 967......Page 968
22.9 Address Book Case Study 968......Page 969
22.9.1 Creating the Address Book App’s GUI 970......Page 971
22.9.2 Coding the Address Book App 971......Page 972
22.11 Wrap-Up 975......Page 976
23 Asynchronous Programming with async and await 982......Page 983
23.1 Introduction 983......Page 984
23.2.3 async, await and Threads 985......Page 986
23.3.1 Performing a Task Asynchronously 986......Page 987
23.3.2 Method calculateButton_Click 988......Page 989
23.3.5 Calculating the Next Fibonacci Value Synchronously 989......Page 990
23.4 Sequential Execution of Two Compute-Intensive Tasks 990......Page 991
23.5 Asynchronous Execution of Two Compute-Intensive Tasks 992......Page 993
23.5.1 awaiting Multiple Tasks with Task Method WhenAll 995......Page 996
23.5.4 awaiting One of Several Tasks with Task Method WhenAny 996......Page 997
23.6 Invoking a Flickr Web Service Asynchronously with HttpClient 997......Page 998
23.6.2 Invoking the Flickr Web Service’s flickr.photos.search Method 1001......Page 1002
23.6.3 Processing the XML Response 1002......Page 1003
23.6.4 Binding the Photo Titles to the ListBox 1003......Page 1004
23.7 Displaying an Asynchronous Task’s Progress 1004......Page 1005
23.8 Wrap-Up 1008......Page 1009
Chapters on the Web......Page 1016
A Operator Precedence Chart 1016......Page 1017
B Simple Types 1018......Page 1019
C ASCII Character Set 1020......Page 1021
Appendices on the Web 1021......Page 1022
A......Page 1024
B......Page 1026
C......Page 1027
D......Page 1031
E......Page 1033
F......Page 1034
G......Page 1035
H......Page 1036
I......Page 1037
L......Page 1039
M......Page 1041
N......Page 1043
O......Page 1044
P......Page 1045
R......Page 1047
S......Page 1048
T......Page 1052
V......Page 1054
Z......Page 1055
📜 SIMILAR VOLUMES
WARNING: Quite frankly this is not a book for beginning programming students. It moves at an accelerated rate and does not offer any basic examples of introduced material. You MUST have your basic OOP concepts down cold BEFORE you begin reading. I heard this a lot about Deitel books, so please be aw
<p>Appropriate for all basic-to-intermediate level courses in Visual C# 2010 programming. </p> <p> </p> <p>Created by world-renowned programming instructors Paul and Harvey Deitel, <i> <b>Visual C# 2010 How to Program, Fourth Edition</b> </i> introduces all facets of the C# 2010 language hands-on, t
<d> <p style="margin:0px;"> <i>Appropriate for all basic-to-intermediate level courses in Visual C# 2012 programming. </i> </p> <p style="margin:0px;"> </p> <p style="margin:0px;">Created by world-renowned programming instructors Paul and Harvey Deitel, <i> <b>Visual C# 2012 How to Program, F
Visual C# 2010 How to Program<br/>Harvey Deitel , Paul Deitel <br/>4th edition, Prentice Hall, 2010 -992 pages<br/>Language: English<br/>ISBN-10: 0132151421<br/>ISBN-13: 978-0132151429<div class="bb-sep"></div>Introduction to Computers, the Internet and Visual C#<br/>Dive Into® Visual C# 2010 Expres
<i>For all basic-to-intermediate level courses in Visual C# programming.</i> <b>An informative, engaging, challenging and entertaining introduction to Visual C#</b> Created by world-renowned programming instructors Paul and Harvey Deitel, <b> <i>Visual C# How to Program, </i>Sixth Edition </b>int