{"product_id":"c-10-0-all-in-one-for-dummies-isbn-9781119839071","title":"C# 10.0 All-in-One For Dummies","description":"\u003cb\u003eLook sharp—learn or refresh your C# skills with the latest version\u003c\/b\u003e \u003cp\u003eC# is one of the most popular programming languages, and frequent updates help it keep pace as the world of coding changes. You can keep pace too, thanks to \u003ci\u003eC# 10.0 All-in-One For Dummies,\u003c\/i\u003e where you'll learn the basics of the language itself, how to code in Visual Studio, and how to take advantage of the new features in the latest release. At every stage of your career, you'll need to know the cutting-edge trends and techniques that clients want. This book has your back, with info on object-oriented programming, writing secure code, building web applications, and more. \u003c\/p\u003e\u003cp\u003eThe six standalone mini-books you'll find inside this all-in-one will take you through the changes to C# and the practical applications and dev tools that you need to know. New features covered include records, init only setters, top-level statements, pattern matching enhancements, fit and finish features, and a lot more. Plus, this version is packed with more examples and code snippets, so you can sharply see C# in action! \u003c\/p\u003e\u003cul\u003e \u003cli\u003eLearn the very basics of C# programming, even if you have no prior experience\u003c\/li\u003e \u003cli\u003eRefresh your knowledge of the language and learn how to use the new features in the 10.0 version release\u003c\/li\u003e \u003cli\u003eRead six mini-books on hot coding topics like object-oriented programming, Visual Studio, and Windows 10 development\u003c\/li\u003e \u003cli\u003eEnhance your employability and join the 6.5-million-strong community of C# developers\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003eYou need an easy-to-read C# guide that will help you understand the incoming updates, and this \u003ci\u003eFor Dummies\u003c\/i\u003e reference is it. \u003c\/p\u003e\u003cp\u003e\u003cb\u003eIntroduction\u003c\/b\u003e 1\u003c\/p\u003e \u003cp\u003eAbout This Book 1\u003c\/p\u003e \u003cp\u003eFoolish Assumptions 2\u003c\/p\u003e \u003cp\u003eIcons Used in This Book 3\u003c\/p\u003e \u003cp\u003eBeyond the Book 3\u003c\/p\u003e \u003cp\u003eWhere to Go from Here 4\u003c\/p\u003e \u003cp\u003e\u003cb\u003eBook 1: The Basics of C# Programming 5\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 1: Creating Your First C# Console Application 7\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eGetting a Handle on Computer Languages, C#, and NET 8\u003c\/p\u003e \u003cp\u003eWhat’s a program? 8\u003c\/p\u003e \u003cp\u003eWhat’s C#? 9\u003c\/p\u003e \u003cp\u003eWhat’s NET? 9\u003c\/p\u003e \u003cp\u003eWhat is Visual Studio 2022? 10\u003c\/p\u003e \u003cp\u003eCreating Your First Console Application 11\u003c\/p\u003e \u003cp\u003eCreating the source program 11\u003c\/p\u003e \u003cp\u003eTaking it out for a test drive 17\u003c\/p\u003e \u003cp\u003eMaking Your Console App Do Something 17\u003c\/p\u003e \u003cp\u003eReviewing Your Console Application 18\u003c\/p\u003e \u003cp\u003eThe program framework 19\u003c\/p\u003e \u003cp\u003eComments 19\u003c\/p\u003e \u003cp\u003eThe meat of the program 19\u003c\/p\u003e \u003cp\u003eReplacing All that Ceremonial Code: Top-Level Statements 20\u003c\/p\u003e \u003cp\u003eIntroducing the Toolbox Trick 21\u003c\/p\u003e \u003cp\u003eSaving code in the Toolbox 22\u003c\/p\u003e \u003cp\u003eReusing code from the Toolbox 22\u003c\/p\u003e \u003cp\u003eInteracting with C# Online 23\u003c\/p\u003e \u003cp\u003eWorking with Jupyter Notebook: The Short Version 23\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 2: Living with Variability — Declaring Value-Type Variables 25\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDeclaring a Variable 26\u003c\/p\u003e \u003cp\u003eWhat’s an int? 27\u003c\/p\u003e \u003cp\u003eRules for declaring variables 28\u003c\/p\u003e \u003cp\u003eVariations on a theme: Different types of int 28\u003c\/p\u003e \u003cp\u003eRepresenting Fractions 30\u003c\/p\u003e \u003cp\u003eHandling Floating-Point Variables 31\u003c\/p\u003e \u003cp\u003eDeclaring a floating-point variable 31\u003c\/p\u003e \u003cp\u003eExamining some limitations of floating-point variables 32\u003c\/p\u003e \u003cp\u003eUsing the Decimal Type: Is It an Integer or a Float? 34\u003c\/p\u003e \u003cp\u003eDeclaring a decimal 35\u003c\/p\u003e \u003cp\u003eComparing decimals, integers, and floating-point types 35\u003c\/p\u003e \u003cp\u003eExamining the bool Type: Is It Logical? 36\u003c\/p\u003e \u003cp\u003eChecking Out Character Types 36\u003c\/p\u003e \u003cp\u003eThe char variable type 36\u003c\/p\u003e \u003cp\u003eSpecial chars 37\u003c\/p\u003e \u003cp\u003eThe string type 37\u003c\/p\u003e \u003cp\u003eWhat’s a Value Type? 39\u003c\/p\u003e \u003cp\u003eComparing string and char 40\u003c\/p\u003e \u003cp\u003eCalculating Leap Years: DateTime 41\u003c\/p\u003e \u003cp\u003eDeclaring Numeric Constants 43\u003c\/p\u003e \u003cp\u003eChanging Types: The Cast 44\u003c\/p\u003e \u003cp\u003eLetting the C# Compiler Infer Data Types 46\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 3: Pulling Strings 49\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe Union Is Indivisible, and So Are Strings 50\u003c\/p\u003e \u003cp\u003ePerforming Common Operations on a String 51\u003c\/p\u003e \u003cp\u003eComparing Strings 52\u003c\/p\u003e \u003cp\u003eEquality for all strings: The Compare() method 52\u003c\/p\u003e \u003cp\u003eWould you like your compares with or without case? 56\u003c\/p\u003e \u003cp\u003eWhat If I Want to Switch Case? 56\u003c\/p\u003e \u003cp\u003eDistinguishing between all-uppercase and all-lowercase strings 56\u003c\/p\u003e \u003cp\u003eConverting a string to upper- or lowercase 57\u003c\/p\u003e \u003cp\u003eLooping through a String 58\u003c\/p\u003e \u003cp\u003eSearching Strings 59\u003c\/p\u003e \u003cp\u003eCan I find it? 59\u003c\/p\u003e \u003cp\u003eIs my string empty? 60\u003c\/p\u003e \u003cp\u003eUsing advanced pattern matching 60\u003c\/p\u003e \u003cp\u003eGetting Input from Users in Console Applications 61\u003c\/p\u003e \u003cp\u003eTrimming excess white space 62\u003c\/p\u003e \u003cp\u003eParsing numeric input 62\u003c\/p\u003e \u003cp\u003eHandling a series of numbers 64\u003c\/p\u003e \u003cp\u003eJoining an array of strings into one string 66\u003c\/p\u003e \u003cp\u003eControlling Output Manually 67\u003c\/p\u003e \u003cp\u003eUsing the Trim() and Pad() methods 67\u003c\/p\u003e \u003cp\u003eUsing the Concatenate() method 69\u003c\/p\u003e \u003cp\u003eGo Ahead and Split() that concatenate program 71\u003c\/p\u003e \u003cp\u003eFormatting Your Strings Precisely 72\u003c\/p\u003e \u003cp\u003eUsing the String.Format() method 72\u003c\/p\u003e \u003cp\u003eUsing the interpolation method 77\u003c\/p\u003e \u003cp\u003eStringBuilder: Manipulating Strings More Efficiently 77\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 4: Smooth Operators 81\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003ePerforming Arithmetic 81\u003c\/p\u003e \u003cp\u003eSimple operators 82\u003c\/p\u003e \u003cp\u003eOperating orders 82\u003c\/p\u003e \u003cp\u003eThe assignment operator 84\u003c\/p\u003e \u003cp\u003eThe increment operator 84\u003c\/p\u003e \u003cp\u003ePerforming Logical Comparisons — Is That Logical? 85\u003c\/p\u003e \u003cp\u003eComparing floating-point numbers: Is your float bigger than mine? 86\u003c\/p\u003e \u003cp\u003eCompounding the confusion with compound logical operations 87\u003c\/p\u003e \u003cp\u003eMatching Expression Types at TrackDownAMate.com 89\u003c\/p\u003e \u003cp\u003eCalculating the type of an operation 89\u003c\/p\u003e \u003cp\u003eAssigning types 91\u003c\/p\u003e \u003cp\u003eChanging how an operator works: Operator overloading 92\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 5: Getting into the Program Flow 95\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eBranching Out with if and switch 96\u003c\/p\u003e \u003cp\u003eIntroducing the if statement 97\u003c\/p\u003e \u003cp\u003eExamining the else statement 100\u003c\/p\u003e \u003cp\u003eAvoiding even the else 101\u003c\/p\u003e \u003cp\u003eNesting if statements 102\u003c\/p\u003e \u003cp\u003eRunning the switchboard 104\u003c\/p\u003e \u003cp\u003eHere We Go Loop-the-Loop 110\u003c\/p\u003e \u003cp\u003eLooping for a while 111\u003c\/p\u003e \u003cp\u003eDoing the do while loop 114\u003c\/p\u003e \u003cp\u003eBreaking up is easy to do 115\u003c\/p\u003e \u003cp\u003eLooping until you get it right 116\u003c\/p\u003e \u003cp\u003eFocusing on scope rules 120\u003c\/p\u003e \u003cp\u003eLooping a Specified Number of Times with for 120\u003c\/p\u003e \u003cp\u003eA for loop example 121\u003c\/p\u003e \u003cp\u003eWhy do you need another loop? 122\u003c\/p\u003e \u003cp\u003eNesting loops 123\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 6: Lining Up Your Ducks with Collections 125\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe C# Array 126\u003c\/p\u003e \u003cp\u003eThe argument for the array 126\u003c\/p\u003e \u003cp\u003eThe fixed-value array 127\u003c\/p\u003e \u003cp\u003eThe variable-length array 129\u003c\/p\u003e \u003cp\u003eInitializing an array 132\u003c\/p\u003e \u003cp\u003eProcessing Arrays by Using foreach 133\u003c\/p\u003e \u003cp\u003eWorking with foreach loops in a standard way 133\u003c\/p\u003e \u003cp\u003eRelying on GetEnumerator support 134\u003c\/p\u003e \u003cp\u003eSorting Arrays of Data 136\u003c\/p\u003e \u003cp\u003eUsing var for Arrays 139\u003c\/p\u003e \u003cp\u003eLoosening Up with C# Collections 140\u003c\/p\u003e \u003cp\u003eUnderstanding Collection Syntax 141\u003c\/p\u003e \u003cp\u003eFiguring out 142\u003c\/p\u003e \u003cp\u003eGoing generic 142\u003c\/p\u003e \u003cp\u003eUsing Lists 143\u003c\/p\u003e \u003cp\u003eInstantiating an empty list 143\u003c\/p\u003e \u003cp\u003eCreating a list of type int 144\u003c\/p\u003e \u003cp\u003eConverting between lists and arrays 144\u003c\/p\u003e \u003cp\u003eSearching lists 144\u003c\/p\u003e \u003cp\u003ePerforming other list tasks 145\u003c\/p\u003e \u003cp\u003eUsing Dictionaries 145\u003c\/p\u003e \u003cp\u003eCreating a dictionary 145\u003c\/p\u003e \u003cp\u003eSearching a dictionary 146\u003c\/p\u003e \u003cp\u003eIterating a dictionary 146\u003c\/p\u003e \u003cp\u003eArray and Collection Initializers 147\u003c\/p\u003e \u003cp\u003eInitializing arrays 148\u003c\/p\u003e \u003cp\u003eInitializing collections 148\u003c\/p\u003e \u003cp\u003eUsing Sets 149\u003c\/p\u003e \u003cp\u003ePerforming special set tasks 149\u003c\/p\u003e \u003cp\u003eCreating a set 150\u003c\/p\u003e \u003cp\u003eAdding items to a set 150\u003c\/p\u003e \u003cp\u003ePerforming a union 151\u003c\/p\u003e \u003cp\u003ePerforming an intersection 152\u003c\/p\u003e \u003cp\u003ePerforming a difference 153\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 7: Stepping through Collections 155\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eIterating through a Directory of Files 156\u003c\/p\u003e \u003cp\u003eUsing the LoopThroughFiles program 156\u003c\/p\u003e \u003cp\u003eGetting started 157\u003c\/p\u003e \u003cp\u003eObtaining the initial input 157\u003c\/p\u003e \u003cp\u003eCreating a list of files 159\u003c\/p\u003e \u003cp\u003eFormatting the output lines 160\u003c\/p\u003e \u003cp\u003eDisplaying the hexadecimal output 161\u003c\/p\u003e \u003cp\u003eRunning from inside Visual Studio 163\u003c\/p\u003e \u003cp\u003eIterating foreach Collections: Iterators 164\u003c\/p\u003e \u003cp\u003eAccessing a collection: The general problem 164\u003c\/p\u003e \u003cp\u003eLetting C# access data foreach container 167\u003c\/p\u003e \u003cp\u003eAccessing Collections the Array Way: Indexers 169\u003c\/p\u003e \u003cp\u003eIndexer format 169\u003c\/p\u003e \u003cp\u003eAn indexer program example 170\u003c\/p\u003e \u003cp\u003eLooping Around the Iterator Block 173\u003c\/p\u003e \u003cp\u003eCreating the required iterator block framework 174\u003c\/p\u003e \u003cp\u003eIterating days of the month: A first example 176\u003c\/p\u003e \u003cp\u003eWhat a collection is, really 177\u003c\/p\u003e \u003cp\u003eIterator syntax gives up so easily 178\u003c\/p\u003e \u003cp\u003eIterator blocks of all shapes and sizes 180\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 8: Buying Generic 187\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWriting a New Prescription: Generics 188\u003c\/p\u003e \u003cp\u003eGenerics are type-safe 188\u003c\/p\u003e \u003cp\u003eGenerics are efficient 189\u003c\/p\u003e \u003cp\u003eClassy Generics: Writing Your Own 190\u003c\/p\u003e \u003cp\u003eShipping packages at OOPs 190\u003c\/p\u003e \u003cp\u003eQueuing at OOPs: PriorityQueue 191\u003c\/p\u003e \u003cp\u003eUnwrapping the package 194\u003c\/p\u003e \u003cp\u003eTouring Main() 196\u003c\/p\u003e \u003cp\u003eWriting generic code the easy way 197\u003c\/p\u003e \u003cp\u003eSaving PriorityQueue for last 198\u003c\/p\u003e \u003cp\u003eUsing a (nongeneric) Simple Factory class 201\u003c\/p\u003e \u003cp\u003eUnderstanding Variance in Generics 205\u003c\/p\u003e \u003cp\u003eContravariance 206\u003c\/p\u003e \u003cp\u003eCovariance 208\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 9: Some Exceptional Exceptions 209\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUsing an Exceptional Error-Reporting Mechanism 210\u003c\/p\u003e \u003cp\u003eAbout try blocks 211\u003c\/p\u003e \u003cp\u003eAbout catch blocks 211\u003c\/p\u003e \u003cp\u003eAbout finally blocks 212\u003c\/p\u003e \u003cp\u003eWhat happens when an exception is thrown 213\u003c\/p\u003e \u003cp\u003eThrowing Exceptions Yourself 215\u003c\/p\u003e \u003cp\u003eCan I Get an Exceptional Example? 216\u003c\/p\u003e \u003cp\u003eWorking with Custom Exceptions 220\u003c\/p\u003e \u003cp\u003ePlanning Your Exception-Handling Strategy 221\u003c\/p\u003e \u003cp\u003eSome questions to guide your planning 221\u003c\/p\u003e \u003cp\u003eGuidelines for code that handles errors well 222\u003c\/p\u003e \u003cp\u003eHow to find out which methods throw which exceptions 223\u003c\/p\u003e \u003cp\u003eGrabbing Your Last Chance to Catch an Exception 225\u003c\/p\u003e \u003cp\u003eThrowing Expressions 226\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 10: Creating Lists of Items with Enumerations 229\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eSeeing Enumerations in the Real World 230\u003c\/p\u003e \u003cp\u003eWorking with Enumerations 231\u003c\/p\u003e \u003cp\u003eUsing the enum keyword 231\u003c\/p\u003e \u003cp\u003eCreating enumerations with initializers 233\u003c\/p\u003e \u003cp\u003eSpecifying an enumeration data type 234\u003c\/p\u003e \u003cp\u003eCreating Enumerated Flags 235\u003c\/p\u003e \u003cp\u003eDefining Enumerated Switches 237\u003c\/p\u003e \u003cp\u003eWorking with Enumeration Methods 238\u003c\/p\u003e \u003cp\u003e\u003cb\u003eBook 2: Object-Oriented C# Programming 241\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 1: Showing Some Class 243\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eA Quick Overview of Object-Oriented Programming 244\u003c\/p\u003e \u003cp\u003eConsidering OOP basics 244\u003c\/p\u003e \u003cp\u003eExtending classes to meet other needs 244\u003c\/p\u003e \u003cp\u003eKeeping objects safe 245\u003c\/p\u003e \u003cp\u003eWorking with objects 246\u003c\/p\u003e \u003cp\u003eDefining a Class and an Object 246\u003c\/p\u003e \u003cp\u003eDefining a class 247\u003c\/p\u003e \u003cp\u003eWhat’s the object? 249\u003c\/p\u003e \u003cp\u003eAccessing the Members of an Object 250\u003c\/p\u003e \u003cp\u003eWorking with Object-Based Code 250\u003c\/p\u003e \u003cp\u003eUsing the traditional approach 250\u003c\/p\u003e \u003cp\u003eUsing the C# 9.0 approach 252\u003c\/p\u003e \u003cp\u003eDiscriminating between Objects 253\u003c\/p\u003e \u003cp\u003eCan You Give Me References? 254\u003c\/p\u003e \u003cp\u003eClasses That Contain Classes Are the Happiest Classes in the World 256\u003c\/p\u003e \u003cp\u003eGenerating Static in Class Members 257\u003c\/p\u003e \u003cp\u003eDefining const and readonly Data Members 259\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 2: We Have Our Methods 261\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDefining and Using a Method 262\u003c\/p\u003e \u003cp\u003eMethod Examples for Your Files 263\u003c\/p\u003e \u003cp\u003eUnderstanding the problem 264\u003c\/p\u003e \u003cp\u003eWorking with standard coding methods 265\u003c\/p\u003e \u003cp\u003eApplying a refactoring approach 268\u003c\/p\u003e \u003cp\u003eWorking with local functions 271\u003c\/p\u003e \u003cp\u003eHaving Arguments with Methods 273\u003c\/p\u003e \u003cp\u003ePassing an argument to a method 273\u003c\/p\u003e \u003cp\u003ePassing multiple arguments to methods 274\u003c\/p\u003e \u003cp\u003eMatching argument definitions with usage 276\u003c\/p\u003e \u003cp\u003eOverloading a method doesn’t mean giving it too much to do 276\u003c\/p\u003e \u003cp\u003eImplementing default arguments 278\u003c\/p\u003e \u003cp\u003eUsing the Call-by-Reference Feature 280\u003c\/p\u003e \u003cp\u003eDefining a Method with No Return Value 281\u003c\/p\u003e \u003cp\u003eReturning Multiple Values Using Tuples 282\u003c\/p\u003e \u003cp\u003eUsing a tuple 283\u003c\/p\u003e \u003cp\u003eRelying on the Create() method 284\u003c\/p\u003e \u003cp\u003eCreating tuples with more than two items 284\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 3: Let Me Say This about this 287\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003ePassing an Object to a Method 288\u003c\/p\u003e \u003cp\u003eComparing Static and Instance Methods 290\u003c\/p\u003e \u003cp\u003eEmploying static properties and methods effectively 291\u003c\/p\u003e \u003cp\u003eEmploying instance properties and methods effectively 293\u003c\/p\u003e \u003cp\u003eExpanding a method’s full name 295\u003c\/p\u003e \u003cp\u003eAccessing the Current Object 296\u003c\/p\u003e \u003cp\u003eWhat is the this keyword? 298\u003c\/p\u003e \u003cp\u003eWhen is the this keyword explicit? 299\u003c\/p\u003e \u003cp\u003eUsing Local Functions 300\u003c\/p\u003e \u003cp\u003eCreating a basic local function 300\u003c\/p\u003e \u003cp\u003eUsing attributes with local functions 301\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 4: Holding a Class Responsible 303\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eRestricting Access to Class Members 303\u003c\/p\u003e \u003cp\u003eA public example of public BankAccount 304\u003c\/p\u003e \u003cp\u003eJumping ahead — other levels of security 306\u003c\/p\u003e \u003cp\u003eWhy You Should Worry about Access Control 307\u003c\/p\u003e \u003cp\u003eAccessor methods 308\u003c\/p\u003e \u003cp\u003eWorking with init-only setters 309\u003c\/p\u003e \u003cp\u003eAccess control to the rescue — an example 311\u003c\/p\u003e \u003cp\u003eDefining Class Properties 313\u003c\/p\u003e \u003cp\u003eStatic properties 315\u003c\/p\u003e \u003cp\u003eProperties with side effects 315\u003c\/p\u003e \u003cp\u003eAccessors with access levels 316\u003c\/p\u003e \u003cp\u003eUsing Target Typing for Your Convenience 316\u003c\/p\u003e \u003cp\u003eDealing with Covariant Return Types 319\u003c\/p\u003e \u003cp\u003eGetting Your Objects Off to a Good Start — Constructors 320\u003c\/p\u003e \u003cp\u003eThe C#-Provided Constructor 321\u003c\/p\u003e \u003cp\u003eReplacing the Default Constructor 322\u003c\/p\u003e \u003cp\u003eConstructing something 324\u003c\/p\u003e \u003cp\u003eInitializing an object directly with an initializer 326\u003c\/p\u003e \u003cp\u003eSeeing that construction stuff with initializers 326\u003c\/p\u003e \u003cp\u003eInitializing an object without a constructor 327\u003c\/p\u003e \u003cp\u003eUsing Expression-Bodied Members 329\u003c\/p\u003e \u003cp\u003eCreating expression-bodied methods 329\u003c\/p\u003e \u003cp\u003eDefining expression-bodied properties 329\u003c\/p\u003e \u003cp\u003eDefining expression-bodied constructors and destructors 330\u003c\/p\u003e \u003cp\u003eDefining expression-bodied property accessors 330\u003c\/p\u003e \u003cp\u003eDefining expression-bodied event accessors 331\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 5: Inheritance: Is That All I Get? 333\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhy You Need Inheritance 334\u003c\/p\u003e \u003cp\u003eInheriting from a BankAccount Class (a More Complex Example) 335\u003c\/p\u003e \u003cp\u003eWorking with the basic update 336\u003c\/p\u003e \u003cp\u003eTracking the BankAccount and SavingsAccount classes features 339\u003c\/p\u003e \u003cp\u003eIS_A versus HAS_A — I’m So Confused_A 342\u003c\/p\u003e \u003cp\u003eThe IS_A relationship 342\u003c\/p\u003e \u003cp\u003eGaining access to BankAccount by using containment 343\u003c\/p\u003e \u003cp\u003eThe HAS_A relationship 345\u003c\/p\u003e \u003cp\u003eWhen to IS_A and When to HAS_A 346\u003c\/p\u003e \u003cp\u003eOther Features That Support Inheritance 346\u003c\/p\u003e \u003cp\u003eSubstitutable classes 346\u003c\/p\u003e \u003cp\u003eInvalid casts at runtime 347\u003c\/p\u003e \u003cp\u003eAvoiding invalid conversions with the is operator 348\u003c\/p\u003e \u003cp\u003eAvoiding invalid conversions with the as operator 349\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 6: Poly-what-ism? 353\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eOverloading an Inherited Method 354\u003c\/p\u003e \u003cp\u003eIt’s a simple case of method overloading 354\u003c\/p\u003e \u003cp\u003eDifferent class, different method 355\u003c\/p\u003e \u003cp\u003ePeek-a-boo — hiding a base class method 355\u003c\/p\u003e \u003cp\u003ePolymorphism 361\u003c\/p\u003e \u003cp\u003eUsing the declared type every time (Is that so wrong?) 362\u003c\/p\u003e \u003cp\u003eUsing is to access a hidden method polymorphically 364\u003c\/p\u003e \u003cp\u003eDeclaring a method virtual and overriding it 365\u003c\/p\u003e \u003cp\u003eGetting the most benefit from polymorphism 368\u003c\/p\u003e \u003cp\u003eC# During Its Abstract Period 368\u003c\/p\u003e \u003cp\u003eClass factoring 369\u003c\/p\u003e \u003cp\u003eThe abstract class: Left with nothing but a concept 373\u003c\/p\u003e \u003cp\u003eHow do you use an abstract class? 374\u003c\/p\u003e \u003cp\u003eCreating an abstract object — not! 377\u003c\/p\u003e \u003cp\u003eSealing a Class 377\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 7: Interfacing with the Interface 379\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eIntroducing CAN_BE_USED_AS 379\u003c\/p\u003e \u003cp\u003eKnowing What an Interface Is 381\u003c\/p\u003e \u003cp\u003eHow to implement an interface 382\u003c\/p\u003e \u003cp\u003eUsing the newer C# 8.0 additions 383\u003c\/p\u003e \u003cp\u003eHow to name your interface 386\u003c\/p\u003e \u003cp\u003eWhy C# includes interfaces 386\u003c\/p\u003e \u003cp\u003eMixing inheritance and interface implementation 387\u003c\/p\u003e \u003cp\u003eAnd he-e-e-re’s the payoff 387\u003c\/p\u003e \u003cp\u003eUsing an Interface 388\u003c\/p\u003e \u003cp\u003eAs a method return type 389\u003c\/p\u003e \u003cp\u003eAs the base type of an array or collection 389\u003c\/p\u003e \u003cp\u003eAs a more general type of object reference 390\u003c\/p\u003e \u003cp\u003eUsing the C# Predefined Interface Types 390\u003c\/p\u003e \u003cp\u003eLooking at a Program That CAN_BE_USED_AS an Example 391\u003c\/p\u003e \u003cp\u003eCreating your own interface at home in your spare time 391\u003c\/p\u003e \u003cp\u003eImplementing the incomparable I Comparable interface 392\u003c\/p\u003e \u003cp\u003eCreating a list of students 394\u003c\/p\u003e \u003cp\u003eTesting everything using Main() 395\u003c\/p\u003e \u003cp\u003eUnifying Class Hierarchies 396\u003c\/p\u003e \u003cp\u003eHiding Behind an Interface 399\u003c\/p\u003e \u003cp\u003eInheriting an Interface 401\u003c\/p\u003e \u003cp\u003eUsing Interfaces to Manage Change in Object-Oriented Programs 402\u003c\/p\u003e \u003cp\u003eMaking flexible dependencies through interfaces 403\u003c\/p\u003e \u003cp\u003eAbstract or concrete: When to use an abstract class and when to use an interface 404\u003c\/p\u003e \u003cp\u003eDoing HAS_A with interfaces 405\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 8: Delegating Those Important Events 407\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eE.T., Phone Home — The Callback Problem 408\u003c\/p\u003e \u003cp\u003eDefining a Delegate 408\u003c\/p\u003e \u003cp\u003ePass Me the Code, Please — Examples 411\u003c\/p\u003e \u003cp\u003eDelegating the task 411\u003c\/p\u003e \u003cp\u003eFirst, a simple example 412\u003c\/p\u003e \u003cp\u003eConsidering the Action, Func, and Predicate delegate types 413\u003c\/p\u003e \u003cp\u003eA More Real-World Example 415\u003c\/p\u003e \u003cp\u003ePutting the app together 416\u003c\/p\u003e \u003cp\u003eSetting the properties and adding event handlers 418\u003c\/p\u003e \u003cp\u003eLooking at the workhorse code 419\u003c\/p\u003e \u003cp\u003eShh! Keep It Quiet — Anonymous Methods 421\u003c\/p\u003e \u003cp\u003eDefining the basic anonymous method 421\u003c\/p\u003e \u003cp\u003eUsing static anonymous methods 422\u003c\/p\u003e \u003cp\u003eWorking with lambda discard parameters 424\u003c\/p\u003e \u003cp\u003eStuff Happens — C# Events 424\u003c\/p\u003e \u003cp\u003eThe Observer design pattern 425\u003c\/p\u003e \u003cp\u003eWhat’s an event? Publish\/Subscribe 425\u003c\/p\u003e \u003cp\u003eHow a publisher advertises its events 426\u003c\/p\u003e \u003cp\u003eHow subscribers subscribe to an event 427\u003c\/p\u003e \u003cp\u003eHow to publish an event 427\u003c\/p\u003e \u003cp\u003eHow to pass extra information to an event handler 428\u003c\/p\u003e \u003cp\u003eA recommended way to raise your events 429\u003c\/p\u003e \u003cp\u003eHow observers “handle” an event 430\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 9: Can I Use Your Namespace in the Library? 433\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDividing a Single Program into Multiple Source Files 434\u003c\/p\u003e \u003cp\u003eWorking with Global using Statements 435\u003c\/p\u003e \u003cp\u003eDividing a Single Program into Multiple Assemblies 437\u003c\/p\u003e \u003cp\u003eExecutable or library? 437\u003c\/p\u003e \u003cp\u003eAssemblies 437\u003c\/p\u003e \u003cp\u003eExecutables 438\u003c\/p\u003e \u003cp\u003eClass libraries 439\u003c\/p\u003e \u003cp\u003ePutting Your Classes into Class Libraries 439\u003c\/p\u003e \u003cp\u003eCreating the projects for a class library 439\u003c\/p\u003e \u003cp\u003eCreating a stand-alone class library 440\u003c\/p\u003e \u003cp\u003eAdding a second project to an existing solution 442\u003c\/p\u003e \u003cp\u003eCreating the code for the library 445\u003c\/p\u003e \u003cp\u003eUsing a test application to test a library 446\u003c\/p\u003e \u003cp\u003eGoing Beyond Public and Private: More Access Keywords 448\u003c\/p\u003e \u003cp\u003eInternal: For CIA eyes only 448\u003c\/p\u003e \u003cp\u003eProtected: Sharing with subclasses 451\u003c\/p\u003e \u003cp\u003ePutting Classes into Namespaces 453\u003c\/p\u003e \u003cp\u003eDeclaring a namespace 454\u003c\/p\u003e \u003cp\u003eUsing file-scoped namespaces 456\u003c\/p\u003e \u003cp\u003eRelating namespaces to the access keyword story 456\u003c\/p\u003e \u003cp\u003eUsing fully qualified names 458\u003c\/p\u003e \u003cp\u003eWorking with partial classes 459\u003c\/p\u003e \u003cp\u003eWorking with Partial Methods 463\u003c\/p\u003e \u003cp\u003eDefining what partial methods do 463\u003c\/p\u003e \u003cp\u003eCreating a partial method 464\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 10: Improving Productivity with Named and Optional Parameters 465\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eExploring Optional Parameters 466\u003c\/p\u003e \u003cp\u003eWorking with optional value parameters 466\u003c\/p\u003e \u003cp\u003eAvoiding optional reference types 468\u003c\/p\u003e \u003cp\u003eLooking at Named Parameters 470\u003c\/p\u003e \u003cp\u003eUsing Alternative Methods to Return Values 470\u003c\/p\u003e \u003cp\u003eOutput (out) parameters 471\u003c\/p\u003e \u003cp\u003eWorking with out variables 471\u003c\/p\u003e \u003cp\u003eReturning values by reference 472\u003c\/p\u003e \u003cp\u003eDealing with null Parameters 473\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 11: Interacting with Structures 475\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eComparing Structures to Classes 476\u003c\/p\u003e \u003cp\u003eConsidering struct limits 476\u003c\/p\u003e \u003cp\u003eUnderstanding the value type difference 477\u003c\/p\u003e \u003cp\u003eDetermining when to use struct versus class 477\u003c\/p\u003e \u003cp\u003eCreating Structures 478\u003c\/p\u003e \u003cp\u003eDefining a basic struct 478\u003c\/p\u003e \u003cp\u003eIncluding common struct elements 479\u003c\/p\u003e \u003cp\u003eUsing supplemental struct elements 482\u003c\/p\u003e \u003cp\u003eWorking with Read-only Structures 485\u003c\/p\u003e \u003cp\u003eWorking with Reference Structures 487\u003c\/p\u003e \u003cp\u003eUsing Structures as Records 489\u003c\/p\u003e \u003cp\u003eManaging a single record 489\u003c\/p\u003e \u003cp\u003eAdding structures to arrays 489\u003c\/p\u003e \u003cp\u003eOverriding methods 490\u003c\/p\u003e \u003cp\u003eUsing the New Record Type 491\u003c\/p\u003e \u003cp\u003eComparing records to structures and classes 491\u003c\/p\u003e \u003cp\u003eWorking with a record 492\u003c\/p\u003e \u003cp\u003eUsing the positional syntax for property definition 493\u003c\/p\u003e \u003cp\u003eUnderstanding value equality 494\u003c\/p\u003e \u003cp\u003eCreating safe changes: Nondestructive mutation 494\u003c\/p\u003e \u003cp\u003eUsing the field keyword 495\u003c\/p\u003e \u003cp\u003e\u003cb\u003eBook 3: Designing For C# 497\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 1: Writing Secure Code 499\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDesigning Secure Software 500\u003c\/p\u003e \u003cp\u003eDetermining what to protect 500\u003c\/p\u003e \u003cp\u003eDocumenting the components of the program 501\u003c\/p\u003e \u003cp\u003eDecomposing components into functions 502\u003c\/p\u003e \u003cp\u003eIdentifying potential threats in functions 502\u003c\/p\u003e \u003cp\u003eBuilding Secure Windows Applications 503\u003c\/p\u003e \u003cp\u003eAuthentication using Windows logon 503\u003c\/p\u003e \u003cp\u003eEncrypting information 507\u003c\/p\u003e \u003cp\u003eDeployment security 507\u003c\/p\u003e \u003cp\u003eUsing System.Security 508\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 2: Accessing Data 509\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eGetting to Know System.Data 510\u003c\/p\u003e \u003cp\u003eHow the Data Classes Fit into the Framework 512\u003c\/p\u003e \u003cp\u003eGetting to Your Data 512\u003c\/p\u003e \u003cp\u003eUsing the System.Data Namespace 513\u003c\/p\u003e \u003cp\u003eSetting up a sample database schema 513\u003c\/p\u003e \u003cp\u003eCreating the data access project 514\u003c\/p\u003e \u003cp\u003eConnecting to a data source 514\u003c\/p\u003e \u003cp\u003eWorking with the visual tools 519\u003c\/p\u003e \u003cp\u003eWriting data code 521\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 3: Fishing the File Stream 525\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eGoing Where the Fish Are: The File Stream 525\u003c\/p\u003e \u003cp\u003eStreams 526\u003c\/p\u003e \u003cp\u003eReaders and writers 527\u003c\/p\u003e \u003cp\u003eStreamWriting for Old Walter 528\u003c\/p\u003e \u003cp\u003eUsing the stream: An example 529\u003c\/p\u003e \u003cp\u003eUsing some better fishing gear: The using statement 534\u003c\/p\u003e \u003cp\u003ePulling Them Out of the Stream: Using StreamReader 537\u003c\/p\u003e \u003cp\u003eMore Readers and Writers 539\u003c\/p\u003e \u003cp\u003eExploring More Streams than Lewis and Clark 541\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 4: Accessing the Internet 543\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eGetting to Know System.Net 544\u003c\/p\u003e \u003cp\u003eHow Net Classes Fit into the Framework 545\u003c\/p\u003e \u003cp\u003eUnderstanding the System.Net subordinate namespaces 545\u003c\/p\u003e \u003cp\u003eWorking with the System.Net classes 548\u003c\/p\u003e \u003cp\u003eUsing the System.Net Namespace 549\u003c\/p\u003e \u003cp\u003eChecking the network status 549\u003c\/p\u003e \u003cp\u003eDownloading a file from the Internet 551\u003c\/p\u003e \u003cp\u003eEmailing a status report 553\u003c\/p\u003e \u003cp\u003eLogging network activity 556\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 5: Creating Images 559\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eGetting to Know System.Drawing 560\u003c\/p\u003e \u003cp\u003eGraphics 561\u003c\/p\u003e \u003cp\u003ePens 562\u003c\/p\u003e \u003cp\u003eBrushes 563\u003c\/p\u003e \u003cp\u003eText 563\u003c\/p\u003e \u003cp\u003eHow the Drawing Classes Fit into the Framework 564\u003c\/p\u003e \u003cp\u003eUsing the System.Drawing Namespace 565\u003c\/p\u003e \u003cp\u003eGetting started 565\u003c\/p\u003e \u003cp\u003eSetting up the project 567\u003c\/p\u003e \u003cp\u003eHandling the score 567\u003c\/p\u003e \u003cp\u003eCreating an event connection 569\u003c\/p\u003e \u003cp\u003eDrawing the board 570\u003c\/p\u003e \u003cp\u003ePrinting the score 572\u003c\/p\u003e \u003cp\u003eStarting a new game 574\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 6: Programming Dynamically! 575\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eShifting C# Toward Dynamic Typing 576\u003c\/p\u003e \u003cp\u003eEmploying Dynamic Programming Techniques 578\u003c\/p\u003e \u003cp\u003ePutting Dynamic to Use 580\u003c\/p\u003e \u003cp\u003eClassic examples 580\u003c\/p\u003e \u003cp\u003eMaking static operations dynamic 581\u003c\/p\u003e \u003cp\u003eUnderstanding what’s happening under the covers 581\u003c\/p\u003e \u003cp\u003eRunning with the Dynamic Language Runtime 582\u003c\/p\u003e \u003cp\u003eUsing Static Anonymous Functions 585\u003c\/p\u003e \u003cp\u003e\u003cb\u003eBook 4: A Tour of Visual Studio 587\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 1: Getting Started with Visual Studio 589\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eVersioning the Versions 590\u003c\/p\u003e \u003cp\u003eAn overview of Visual Studio 2022 updates 590\u003c\/p\u003e \u003cp\u003eCommunity edition 592\u003c\/p\u003e \u003cp\u003eProfessional edition 594\u003c\/p\u003e \u003cp\u003eEnterprise edition 594\u003c\/p\u003e \u003cp\u003eMSDN 595\u003c\/p\u003e \u003cp\u003eInstalling Visual Studio 596\u003c\/p\u003e \u003cp\u003eBreaking Down the Projects 597\u003c\/p\u003e \u003cp\u003eExploring the Create a New Project dialog box 600\u003c\/p\u003e \u003cp\u003eUnderstanding solutions and projects 601\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 2: Using the Interface 603\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDesigning in the Designer 604\u003c\/p\u003e \u003cp\u003eUniversal Windows Platform (UWP) application 604\u003c\/p\u003e \u003cp\u003eWindows Presentation Foundation (WPF) 607\u003c\/p\u003e \u003cp\u003eWindows Forms 609\u003c\/p\u003e \u003cp\u003eData View 609\u003c\/p\u003e \u003cp\u003ePaneling the Studio 610\u003c\/p\u003e \u003cp\u003eSolution Explorer 610\u003c\/p\u003e \u003cp\u003eProperties 613\u003c\/p\u003e \u003cp\u003eThe Toolbox 614\u003c\/p\u003e \u003cp\u003eServer Explorer 615\u003c\/p\u003e \u003cp\u003eClass View 617\u003c\/p\u003e \u003cp\u003eCoding in the Code Editor 618\u003c\/p\u003e \u003cp\u003eExercising the Code Editor 618\u003c\/p\u003e \u003cp\u003eExploring the auxiliary windows 619\u003c\/p\u003e \u003cp\u003eUsing the Tools of the Trade 621\u003c\/p\u003e \u003cp\u003eThe Tools menu 622\u003c\/p\u003e \u003cp\u003eBuilding 623\u003c\/p\u003e \u003cp\u003eUsing the Debugger as an Aid to Learning 623\u003c\/p\u003e \u003cp\u003eStepping through code 623\u003c\/p\u003e \u003cp\u003eGoing to a particular code location 624\u003c\/p\u003e \u003cp\u003eWatching application data 625\u003c\/p\u003e \u003cp\u003eViewing application internals 626\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 3: Customizing Visual Studio 627\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eSetting Options 628\u003c\/p\u003e \u003cp\u003eEnvironment 629\u003c\/p\u003e \u003cp\u003eLanguage 630\u003c\/p\u003e \u003cp\u003eNeat stuff 631\u003c\/p\u003e \u003cp\u003eCreating Your Own Templates 632\u003c\/p\u003e \u003cp\u003eDeveloping a project template 632\u003c\/p\u003e \u003cp\u003eDeveloping an item template 635\u003c\/p\u003e \u003cp\u003e\u003cb\u003eBook 5: Windows Development with Wpf 639\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 1: Introducing WPF 641\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding What WPF Can Do 642\u003c\/p\u003e \u003cp\u003eIntroducing XAML 643\u003c\/p\u003e \u003cp\u003eDiving In! Creating Your First WPF Application 644\u003c\/p\u003e \u003cp\u003eDeclaring an application-scoped resource 647\u003c\/p\u003e \u003cp\u003eMaking the application do something 648\u003c\/p\u003e \u003cp\u003eWhatever XAML Can Do, C# Can Do Better! 650\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 2: Understanding the Basics of WPF 653\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUsing WPF to Lay Out Your Application 654\u003c\/p\u003e \u003cp\u003eArranging Elements with Layout Panels 655\u003c\/p\u003e \u003cp\u003eThe Stack panel 656\u003c\/p\u003e \u003cp\u003eThe Wrap panel 660\u003c\/p\u003e \u003cp\u003eThe Dock panel 661\u003c\/p\u003e \u003cp\u003eCanvas 662\u003c\/p\u003e \u003cp\u003eThe Grid 662\u003c\/p\u003e \u003cp\u003ePutting it all together with a simple data entry form 669\u003c\/p\u003e \u003cp\u003eExploring Common XAML Controls 672\u003c\/p\u003e \u003cp\u003eDisplay-only controls 672\u003c\/p\u003e \u003cp\u003eBasic input controls 674\u003c\/p\u003e \u003cp\u003eList-based controls 677\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 3: Data Binding in WPF 681\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eGetting to Know Dependency Properties 682\u003c\/p\u003e \u003cp\u003eExploring the Binding Modes 683\u003c\/p\u003e \u003cp\u003eInvestigating the Binding Object 683\u003c\/p\u003e \u003cp\u003eDefining a binding with XAML 684\u003c\/p\u003e \u003cp\u003eDefining a binding with C# 686\u003c\/p\u003e \u003cp\u003eEditing, Validating, Converting, and Visualizing Your Data 687\u003c\/p\u003e \u003cp\u003eValidating data 693\u003c\/p\u003e \u003cp\u003eConverting your data 697\u003c\/p\u003e \u003cp\u003eFinding Out More about WPF Data Binding 705\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 4: Practical WPF 707\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eCommanding Attention 708\u003c\/p\u003e \u003cp\u003eTraditional event handling 708\u003c\/p\u003e \u003cp\u003eICommand 709\u003c\/p\u003e \u003cp\u003eRouted commands 710\u003c\/p\u003e \u003cp\u003eUsing Built-In Commands 711\u003c\/p\u003e \u003cp\u003eUsing Custom Commands 713\u003c\/p\u003e \u003cp\u003eDefining the interface 713\u003c\/p\u003e \u003cp\u003eCreating the window binding 714\u003c\/p\u003e \u003cp\u003eEnsuring that the command can execute 714\u003c\/p\u003e \u003cp\u003ePerforming the task 715\u003c\/p\u003e \u003cp\u003eUsing Routed Commands 717\u003c\/p\u003e \u003cp\u003eDefining the Command class 717\u003c\/p\u003e \u003cp\u003eMaking the namespace accessible 718\u003c\/p\u003e \u003cp\u003eAdding the command bindings 718\u003c\/p\u003e \u003cp\u003eDeveloping a user interface 718\u003c\/p\u003e \u003cp\u003eDeveloping the custom command code-behind 719\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 5: Programming for Windows 10 and Above 721\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhat is the Universal Windows Platform (UWP)? 722\u003c\/p\u003e \u003cp\u003eDevices Supported by the UWP 725\u003c\/p\u003e \u003cp\u003eCreating Your Own UWP App 726\u003c\/p\u003e \u003cp\u003eConfiguring Developer Mode 726\u003c\/p\u003e \u003cp\u003eDefining the project 732\u003c\/p\u003e \u003cp\u003eCreating an interface 734\u003c\/p\u003e \u003cp\u003eAdding some background code 738\u003c\/p\u003e \u003cp\u003eChoosing a test device 739\u003c\/p\u003e \u003cp\u003eWorking with NET Core Applications 740\u003c\/p\u003e \u003cp\u003e\u003cb\u003eBook 6: Web Development with Asp.Net 743\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 1: Creating a Basic ASP.NET Core App 745\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding the ASP.NET Core Templates 746\u003c\/p\u003e \u003cp\u003eStarting with nothing using ASP.NET Core Empty 746\u003c\/p\u003e \u003cp\u003eCreating a basic app using the ASP.NET Core Web App 748\u003c\/p\u003e \u003cp\u003eFumbling around with HTTPS-enabled sites 749\u003c\/p\u003e \u003cp\u003eBuilding in business logic using ASP.NET Core App (Model-View-Controller) 751\u003c\/p\u003e \u003cp\u003eDeveloping a programming interface using ASP.NET\u003c\/p\u003e \u003cp\u003eCore Web API 752\u003c\/p\u003e \u003cp\u003eAn overview of those other weird templates 753\u003c\/p\u003e \u003cp\u003eDeveloping a Basic Web App 754\u003c\/p\u003e \u003cp\u003eCreating the project 754\u003c\/p\u003e \u003cp\u003eConsidering the development process 756\u003c\/p\u003e \u003cp\u003eAdding web content 757\u003c\/p\u003e \u003cp\u003eMaking some basic changes to the first page 759\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 2: Employing the Razor Markup Language 761\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eAvoiding Nicks from Razor 762\u003c\/p\u003e \u003cp\u003eComparing Razor to its predecessors 762\u003c\/p\u003e \u003cp\u003eConsidering the actual file layout 763\u003c\/p\u003e \u003cp\u003eUnderstanding the syntax rules for C# 766\u003c\/p\u003e \u003cp\u003eWorking with some Razor basics 767\u003c\/p\u003e \u003cp\u003eCreating Variables 770\u003c\/p\u003e \u003cp\u003eKeeping Things Logical 771\u003c\/p\u003e \u003cp\u003eStarting simply by using if 771\u003c\/p\u003e \u003cp\u003eSleeping at the switch 771\u003c\/p\u003e \u003cp\u003eImplementing Loops 772\u003c\/p\u003e \u003cp\u003eCreating an array 772\u003c\/p\u003e \u003cp\u003ePerforming tasks a specific number of times using for 773\u003c\/p\u003e \u003cp\u003eProcessing an unknown number of times using for each and while 773\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 3: Generating and Consuming Data 775\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding Why These Projects Are Important 776\u003c\/p\u003e \u003cp\u003eSerialized Data Isn’t for Breakfast 777\u003c\/p\u003e \u003cp\u003eDeveloping a Data Generator and API 778\u003c\/p\u003e \u003cp\u003eCreating the WeatherForecast project 778\u003c\/p\u003e \u003cp\u003eMaking the data believable 781\u003c\/p\u003e \u003cp\u003eLooking at the API configuration 783\u003c\/p\u003e \u003cp\u003eChecking the API for functionality 784\u003c\/p\u003e \u003cp\u003eCreating a Consumer Website 786\u003c\/p\u003e \u003cp\u003eCreating the RetrieveWeatherForecast project 786\u003c\/p\u003e \u003cp\u003eDeveloping a user interface 787\u003c\/p\u003e \u003cp\u003eGetting and deserializing the data 789\u003c\/p\u003e \u003cp\u003eSeeing the application in action 793\u003c\/p\u003e \u003cp\u003eIndex 795 \u003c\/p\u003e \u003cp\u003e\u003cb\u003e John Paul Mueller\u003c\/b\u003e is an author and technical editor with experience in application development, database management, machine learning, and deep learning. He has written hundreds of books and articles helping everyday people learn everything from networking to database management.\u003c\/p\u003e  \u003cp\u003e\u003cb\u003eHone your skills and get the latest on C#\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eReady to become a C# super-coder? \u003ci\u003eC# 10.0 All-in-One For Dummies\u003c\/i\u003e is your manual for getting started and keeping up with this popular programming language. With 6 minibooks inside, you can walk through writing your first console application in C#, learn how to code for Windows and for the web, master Visual Studio, bring object-oriented programming into focus, use the new Universal Windows\u003csup\u003e®\u003c\/sup\u003e Platform (UWP), and design incredible software with the sharpest language on the block. This version is full of examples and code snippets—more than ever before—so you can see C# in action.  \u003c\/p\u003e\u003cp\u003e\u003cb\u003e Six Books Inside…  \u003cul\u003e\n\u003cli\u003eThe Basics of C# Programming\u003c\/li\u003e \u003cli\u003eObject-Oriented C# Programming\u003c\/li\u003e \u003cli\u003eDesigning for C#\u003c\/li\u003e \u003cli\u003eA Tour of Visual Studio\u003csup\u003e®\u003c\/sup\u003e\n\u003c\/li\u003e \u003cli\u003eWindows Development with WPF\u003c\/li\u003e \u003cli\u003eWeb Development with ASP.NET Core\u003c\/li\u003e\n\u003c\/ul\u003e\u003c\/b\u003e\u003c\/p\u003e","brand":"For Dummies","offers":[{"title":"Default Title","offer_id":47988875460837,"sku":"NP9781119839071","price":51.99,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1842\/7735\/files\/9781119839071.jpg?v=1761781874","url":"https:\/\/k12savings.com\/es\/products\/c-10-0-all-in-one-for-dummies-isbn-9781119839071","provider":"K12savings","version":"1.0","type":"link"}