LEADER 10844nam 2200541 450 001 9910798930403321 005 20230124200924.0 010 $a1-119-79583-4 010 $a1-119-79582-6 035 $a(CKB)4100000011981509 035 $a(MiAaPQ)EBC6665398 035 $a(Au-PeEL)EBL6665398 035 $a(OCoLC)1259594061 035 $a(PPN)272718548 035 $a(EXLCZ)994100000011981509 100 $a20220322d2021 uy 0 101 0 $aeng 135 $aurcnu|||||||| 181 $ctxt$2rdacontent 182 $cc$2rdamedia 183 $acr$2rdacarrier 200 10$aBeginning C# and .Net /$fBenjamin Perkins, Jon Reid 205 $aSecond edition. 210 1$aIndianapolis, Indiana :$cJohn Wiley and Sons,$d[2021] 210 4$dİ2021 215 $a1 online resource (862 pages) 300 $aIncludes index. 311 $a1-119-79578-8 327 $aCover -- Title Page -- Copyright Page -- About The Authors -- About The Technical Editor -- Acknowledgments -- Contents -- Introduction -- Who This Book is For -- What This Book Covers -- How This Book is Structured -- The C# Language (Chapters 1-13) -- Data Access (Chapters 14-17) -- Additional Techniques (Chapters 18-21) -- What You Need To Use This Book -- Conventions -- Source Code -- ERRATA -- Part I The C# Language -- Chapter 1: Introducing C# -- What Is .NET? -- .NET Framework, .NET Standard, and .NET Core -- Writing Programs Using .NET -- CIL and JIT -- Assemblies -- Managed Code -- Garbage Collection -- Fitting It Together -- Linking -- What Is C#? -- Applications You Can Write with C# -- C# in This Book -- Visual Studio -- Visual Studio Products -- Solutions -- Chapter 2: Writing a C# Program -- The Visual Studio Development Environment -- Console Applications -- The Solution Explorer -- The Properties Window -- The Error List Window -- Desktop Applications -- Chapter 3: Variables and Expressions -- Basic C# Syntax -- Basic C# Console Application Structure -- Variables -- Simple Types -- Variable Naming -- Literal Values -- Binary Literals and Digit Separators -- String Literals -- Expressions -- Mathematical Operators -- Assignment Operators -- Operator Precedence -- Namespaces -- Chapter 4: Flow Control -- Boolean Logic -- Boolean Bitwise and Assignment Operators -- Operator Precedence Updated -- Branching -- The Ternary Operator -- The if Statement -- Checking More Conditions Using if Statements -- The switch Statement -- Looping -- do Loops -- while Loops -- for Loops -- Interrupting Loops -- Infinite Loops -- Chapter 5: More about Variables -- Type Conversion -- Implicit Conversions -- Explicit Conversions -- Explicit Conversions Using the Convert Commands -- Complex Variable Types -- Enumerations -- Defining Enumerations. 327 $aStructs -- Defining Structs -- Arrays -- Declaring Arrays -- foreach Loops -- Pattern Matching with switch case Expression -- Multidimensional Arrays -- Arrays of Arrays -- String Manipulation -- Chapter 6: Functions -- Defining and Using Functions -- Return Values -- Parameters -- Parameter Matching -- Parameter Arrays -- Reference and Value Parameters -- Out Parameters -- Tuples -- Variable Scope -- Variable Scope in Other Structures -- Parameters and Return Values versus Global Data -- Local Functions -- The Main() Function -- Struct Functions -- Overloading Functions -- Using Delegates -- Chapter 7: Debugging and Error Handling -- Debugging in Visual Studio -- Debugging in Nonbreak (Normal) Mode -- Outputting Debugging Information -- Tracepoints -- Diagnostics Output versus Tracepoints -- Debugging in Break Mode -- Entering Break Mode -- Monitoring Variable Content -- Stepping through Code -- Immediate and Command Windows -- The Call Stack Window -- Error Handling -- try. . .catch. . .finally -- Throw Expressions -- Listing and Configuring Exceptions -- Chapter 8: Introduction to Object-Oriented Programming -- What Is Object-Oriented Programming? -- What Is an Object? -- Properties and Fields -- Methods -- Everything's an Object -- The Life Cycle of an Object -- Constructors -- Destructors -- Static and Instance Class Members -- Static Constructors -- Static Classes -- OOP Techniques -- Interfaces -- Disposable Objects -- Inheritance -- Polymorphism -- Interface Polymorphism -- Relationships between Objects -- Containment -- Collections -- Operator Overloading -- Events -- Reference Types versus Value Types -- OOP in Desktop Applications -- Chapter 9: Defining Classes -- Class Definitions in C# -- Interface Definitions -- System.Object -- Constructors and Destructors -- Constructor Execution Sequence -- OOP Tools in Visual Studio. 327 $aThe Class View Window -- The Object Browser -- Adding Classes -- Class Diagrams -- Class Library Projects -- Interfaces versus Abstract Classes -- Struct Types -- Shallow Copying versus Deep Copying -- Chapter 10: Defining Class Members -- Member Definitions -- Defining Fields -- Defining Methods -- Defining Properties -- Tuple Deconstruction -- Refactoring Members -- Automatic Properties -- Additional Class Member Topics -- Hiding Base Class Methods -- Calling Overridden or Hidden Base Class Methods -- The this Keyword -- Using Nested Type Definitions -- Interface Implementation -- Implementing Interfaces in Classes -- Explicit Interface Member Implementation -- Additional Property Accessors -- Partial Class Definitions -- Partial Method Definitions -- Example Application -- Planning the Application -- The Card Class -- The Deck Class -- Writing the Class Library -- Adding the Suit and Rank Enumerations -- Adding the Card Class -- Adding the Deck Class -- A Client Application for the Class Library -- The Call Hierarchy Window -- Chapter 11: Collections, Comparisons, and Conversions -- Collections -- Using Collections -- Defining Collections -- Indexers -- Adding a CardCollection to CardLib -- Keyed Collections and IDictionary -- Iterators -- Iterators and Collections -- Deep Copying -- Adding Deep Copying to CardLib -- Comparisons -- Type Comparisons -- Boxing and Unboxing -- The is Operator -- Pattern Matching with the is Operator Pattern Expression -- Value Comparisons -- Operator Overloading -- Adding Operator Overloads to CardLib -- The IComparable and IComparer Interfaces -- Sorting Collections -- Conversions -- Overloading Conversion Operators -- The as Operator -- Chapter 12: Generics -- What Are Generics? -- Using Generics -- Nullable Types -- Operators and Nullable Types -- The ?? Operator -- The ?. Operator -- Working with Nullable Types. 327 $aThe System.Collections.Generic Namespace -- List< -- T> -- -- Sorting and Searching Generic Lists -- Dictionary< -- K, V> -- -- Modifying CardLib to Use a Generic Collection Class -- Defining Generic Types -- Defining Generic Classes -- The default Keyword -- Constraining Types -- Inheriting from Generic Classes -- Generic Operators -- Generic Structs -- Defining Generic Interfaces -- Defining Generic Methods -- Defining Generic Delegates -- Variance -- Covariance -- Contravariance -- Chapter 13: Additional C# Techniques -- The :: Operator and the Global Namespace Qualifier -- Custom Exceptions -- Adding Custom Exceptions to CardLib -- Events -- What Is an Event? -- Handling Events -- Defining Events -- Multipurpose Event Handlers -- The EventHandler and Generic EventHandler< -- T> -- Types -- Return Values and Event Handlers -- Anonymous Methods -- Expanding and Using CardLib -- Attributes -- Reading Attributes -- Creating Attributes -- Initializers -- Object Initializers -- Collection Initializers -- Type Inference -- Anonymous Types -- Dynamic Lookup -- The dynamic Type -- Advanced Method Parameters -- Optional Parameters -- Optional Parameter Values -- The OptionalAttribute Attribute -- Optional Parameter Order -- Named Parameters -- Lambda Expressions -- Anonymous Methods Recap -- Lambda Expressions for Anonymous Methods -- Lambda Expression Parameters -- Lambda Expression Statement Bodies -- Lambda Expressions as Delegates and Expression Trees -- Lambda Expressions and Collections -- Part II Data Access -- Chapter 14: Files -- File Classes for Input and Output -- The File and Directory Classes -- The FileInfo Class -- The DirectoryInfo Class -- Path Names and Relative Paths -- Streams -- Classes for Using Streams -- The FileStream Object -- File Position -- Reading Data -- Writing Data -- The StreamWriter Object. 327 $aThe StreamReader Object -- Reading Data -- Asynchronous File Access -- Reading and Writing Compressed Files -- Monitoring the File System -- Chapter 15: XML AND JSON -- XML Basics -- JSON Basics -- XML Schemas -- XML Document Object Model -- The XmlDocument Class -- The XmlElement Class -- Changing the Values of Nodes -- Inserting New Nodes -- Deleting Nodes -- Selecting Nodes -- Searching XML with XPath -- JSON Serialization and Deserialization -- Chapter 16: LINQ -- LINQ to XML -- LINQ to XML Functional Constructors -- Working with XML Fragments -- LINQ Providers -- LINQ Query Syntax -- Declaring a Variable for Results Using the var Keyword -- Specifying the Data Source: from Clause -- Specify Condition: where Clause -- Selecting Items: select Clause -- Finishing Up: Using the foreach Loop -- Deferred Query Execution -- LINQ Method Syntax -- LINQ Extension Methods -- Query Syntax versus Method Syntax -- Lambda Expressions -- Ordering Query Results -- Understanding the orderby Clause -- Querying a Large Data Set -- Using Aggregate Operators -- Using the Select Distinct Query -- Ordering by Multiple Levels -- Using Group Queries -- Using Joins -- Chapter 17: Databases -- Using Databases -- Entity Framework -- Code- First versus Database- First -- Migrations and Scaffolding -- Install SQL Server Express LocalDB -- A Code- First Database -- Exploring Your Database -- Navigating Database Relationships -- Creating and Querying XML from an Existing Database -- Part III Additional Techniques -- Chapter 18: .NET and ASP.NET -- Cross- Platform Basics and Key "Must Know" Terms -- What was .NET Standard? -- Shared Project, PCL, and .NET Standard -- Building and Packaging a .NET Standard Library -- Referencing and Targeting .NET -- What was .NET Core? -- Cross Platform -- Open Source -- Optimized for the Cloud -- Performance -- Modular Design. 327 $aSelf- Contained Deployment Model. 606 $aC# (Computer program language) 606 $aObject-oriented programming (Computer science) 615 0$aC# (Computer program language) 615 0$aObject-oriented programming (Computer science) 676 $a005.133 700 $aPerkins$b Benjamin$01012996 702 $aReid$b Jon D. 801 0$bMiAaPQ 801 1$bMiAaPQ 801 2$bMiAaPQ 906 $aBOOK 912 $a9910798930403321 996 $aBeginning C# and .Net$93819303 997 $aUNINA