The C# player's guide
Subtitle: using C# 6.0 Visual Studio 2015 and .NET 4.6
By: RB Whitaker
Edition: Second edition.
Publisher: Starbound Software
Published: 2015
Place of publication: United States?]
Language: eng
Number of pages: 345
ISBN-13: 9780985580124
Copyright date: 2015
Subjects: C# (Computer program language); Visual programming (Computer science); Object-oriented programming (Computer science); Computer programming; C# (Langage de programmation); Programmation visuelle; Programmation orientée objet (Informatique); Programmation (Informatique)
Other titles: C sharp player's guide; Using C# 6.0 Visual Studio 2015 and .NET 4.6
Description: "The C# Player's Guide (2nd Edition) is the ultimate guide for people starting out with C#, whether you are new to programming, or an experienced vet. This guide takes you from your journey's beginning, through the most challenging parts of programming in C#, and does so in a way that is casual, informative, and fun. This version of the book is updated for C# 6.0, .NET 4.6, and Visual Studio 2015"--Publisher's website.
Notes: Includes index.
Table of contents: title: Acknowledgements
pagenum: xv; title: Introduction
pagenum: xvii; title: The Player's Guide
pagenum: xvii; title: How This Book is Organized
pagenum: xvii; title: Getting the Most from This Book
pagenum: xx; title: I Genuinely Want Your Feedback
pagenum: xxi; title: This Book Comes with Online Content
pagenum: xxi; label: Part 1
title: Getting Started; label: 1
title: The C# Programming Language
pagenum: 3; title: What Exactly is C#?
pagenum: 3; title: What is the .NET Framework?
pagenum: 4; title: C# and .NET Versions
pagenum: 5; label: 2
title: Installing Visual Studio
pagenum: 6; title: Versions of Visual Studio
pagenum: 7; title: The Installation Process
pagenum: 8; title: Alternatives to Visual Studio
pagenum: 8; label: 3
title: Hello World: Your First C# Program
pagenum: 10; title: Creating a New Project
pagenum: 11; title: A Brief Tour of Visual Studio
pagenum: 12; title: Building Blocks: Projects, Solutions, and Assemblies
pagenum: 13; title: Modifying Your Project
pagenum: 13; title: Compiling and Running Your Project
pagenum: 15; title: A Closer Look at Your Program
pagenum: 16; title: Whitespace Doesn't Matter
pagenum: 18; title: Semicolons
pagenum: 19; label: 4
title: Comments
pagenum: 20; title: What is a Comment?
pagenum: 20; title: Why Should I Use Comments?
pagenum: 20; title: How to Make Comments in C#
pagenum: 21; title: How to Make Good Comments
pagenum: 22; label: Part 2
title: The Basics; label: 5
title: Variables
pagenum: 25; title: What is a Variable?
pagenum: 25; title: Creating Variables
pagenum: 26; title: Assigning Values to Variables
pagenum: 27; title: Retrieving the Contents of a Variable
pagenum: 28; title: How Data is Stored
pagenum: 29; title: Good Variable Names
pagenum: 30; label: 6
title: The C# Type System
pagenum: 32; title: An Introduction to the Type System
pagenum: 32; title: The int Type
pagenum: 32; title: The byte, short, and long Types
pagenum: 33; title: The sbyte, ushort, uint, and ulong Types
pagenum: 33; title: The char Type
pagenum: 34; title: The float, double, and decimal Types
pagenum: 35; title: The bool Type
pagenum: 37; title: The string Type
pagenum: 38; label: 7
title: Basic Math
pagenum: 40; title: Operations and Operators
pagenum: 41; title: Addition, Subtraction, Multiplication, and Division
pagenum: 41; title: The Remainder Operator
pagenum: 43; title: Unary "+" and "-" Operators
pagenum: 44; title: Order of Operations and Parentheses
pagenum: 44; title: Why the '=' Sign Doesn't Mean Equals
pagenum: 45; title: Compound Assignment Operators
pagenum: 45; label: 8
title: User Input
pagenum: 47; title: User Input from the Console
pagenum: 47; title: Converting Types
pagenum: 47; title: A Complete Sample Program
pagenum: 48; title: Escape Characters
pagenum: 50; title: String Interpolation
pagenum: 51; label: 9
title: More Math
pagenum: 53; title: Integer Division
pagenum: 54; title: Working with Different Types and Casting
pagenum: 55; title: Division by Zero
pagenum: 56; title: Infinity, NaN, e, PI, MinValue, and MaxValue
pagenum: 57; title: Overflow and Underflow
pagenum: 58; title: Incrementing and Decrementing
pagenum: 58; label: 10
title: Decision Making
pagenum: 60; title: The 'if' Statement
pagenum: 61; title: The 'else' Statement
pagenum: 62; title: 'else if' Statements
pagenum: 62; title: Curly Braces Not Always Needed
pagenum: 63; title: Relational Operators: ==, !=, <, >, <=, >=
pagenum: 64; title: Using 'bool' in Decision Making
pagenum: 65; title: The ! Operator
pagenum: 66; title: Conditional Operators: && and || (And and Or)
pagenum: 67; title: Nesting If Statements
pagenum: 67; title: The Conditional Operator ?:
pagenum: 68; label: 11
title: Switch Statements
pagenum: 69; title: The Basics of Switch Statements
pagenum: 70; title: Types Allowed with Switch Statements
pagenum: 71; title: No Implicit Fall-Through
pagenum: 71; label: 12
title: Looping
pagenum: 73; title: The While Loop
pagenum: 73; title: The Do-While Loop
pagenum: 75; title: The For Loop
pagenum: 75; title: Breaking Out of Loops
pagenum: 76; title: Continuing to the Next Iteration of the Loop
pagenum: 77; title: Nesting Loops
pagenum: 77; title: Still to Come: Foreach
pagenum: 79; label: 13
title: Arrays
pagenum: 80; title: What is an Array?
pagenum: 80; title: Creating Arrays
pagenum: 81; title: Getting and Setting Values in Arrays
pagenum: 81; title: More Ways to Create Arrays
pagenum: 82; title: Array Length
pagenum: 82; title: Some Examples with Arrays
pagenum: 83; title: Arrays of Arrays and Multi-Dimensional Arrays
pagenum: 83; title: The 'foreach' Loop
pagenum: 85; label: 14
title: Enumerations
pagenum: 86; title: The Basics of Enumerations
pagenum: 86; title: Why Enumerations are Useful
pagenum: 88; title: Underlying Types
pagenum: 88; title: Assigning Numbers to Enumeration Values
pagenum: 89; label: 15
title: Methods
pagenum: 90; title: Creating a Method
pagenum: 91; title: Calling a Method
pagenum: 93; title: Returning Stuff from a Method
pagenum: 94; title: Sending Stuff to a Method
pagenum: 96; title: Passing in Multiple Parameters
pagenum: 96; title: Method Overloading
pagenum: 97; title: Revisiting the Convert and Console Classes
pagenum: 99; title: XML Documentation Comments
pagenum: 99; title: The Minimum You Need to Know About Recursion
pagenum: 100; label: 16
title: Value and Reference Types
pagenum: 102; title: The Stack and the Heap
pagenum: 102; title: Memory Management and Garbage Collection
pagenum: 103; title: References
pagenum: 104; title: Value Types and Reference Types
pagenum: 104; title: Null: References to Nothing
pagenum: 106; title: Value and Reference Semantics
pagenum: 107; label: Part 3
title: Object-Oriented Programming; label: 17
title: Classes and Objects
pagenum: 113; title: Modeling the Real World
pagenum: 113; title: Working with an Existing Class
pagenum: 114; title: Using an Object
pagenum: 115; title: The Power of Objects
pagenum: 116; title: Classes are Reference Types
pagenum: 116; label: 18
title: Making Your Own Classes
pagenum: 118; title: Creating a New Class
pagenum: 119; title: Adding Instance Variables
pagenum: 120; title: Access Modifiers: private and public
pagenum: 121; title: Adding Constructors
pagenum: 121; title: Adding Methods
pagenum: 125; title: The 'static' Keyword
pagenum: 127; title: The 'internal' Access Modifier
pagenum: 129; title: Finishing the Sample
pagenum: 130; label: 19
title: Properties
pagenum: 132; title: The Motivation for Properties
pagenum: 133; title: Creating Properties
pagenum: 133; title: Different Accessibility Levels
pagenum: 135; title: Auto-Implemented Properties
pagenum: 136; title: Object Initializer Syntax
pagenum: 137; label: 20
title: Structs
pagenum: 138; title: Creating a Struct
pagenum: 138; title: Structs vs. Classes
pagenum: 139; title: Deciding Between a Struct and a Class
pagenum: 141; title: Prefer Immutable Value Types
pagenum: 141; title: The Built-In Types are Aliases
pagenum: 141; label: 21
title: Inheritance
pagenum: 144; title: Base Classes
pagenum: 145; title: Derived Classes
pagenum: 145; title: Using Derived Classes
pagenum: 146; title: Constructors and Inheritance
pagenum: 148; title: The 'protected' Access Modifier
pagenum: 148; title: The Base Class of Everything: object
pagenum: 148; title: Sealed Classes
pagenum: 149; title: Partial Classes
pagenum: 149; title: C# Does Not Support Multiple Inheritance
pagenum: 150; label: 22
title: Polymorphism, Virtual Methods, and Abstract Classes
pagenum: 151; title: Polymorphism
pagenum: 152; title: Revisiting the 'base' Keyword
pagenum: 153; title: Abstract Base Classes
pagenum: 154; title: The 'new' Keyword with Methods
pagenum: 155; label: 23
title: Interfaces
pagenum: 156; title: What is an Interface?
pagenum: 156; title: Creating an Interface
pagenum: 157; title: Using Interfaces
pagenum: 158; title: Multiple Interfaces and Inheritance
pagenum: 159; label: 24
title: Using Generics
pagenum: 161; title: The Motivation for Generics
pagenum: 161; title: What are Generics?
pagenum: 163; title: The List Class
pagenum: 164; title: The IEnumerable<T> Interface
pagenum: 165; title: The Dictionary Class
pagenum: 166; label: 25
title: Making Generic Types
pagenum: 167; title: Creating Your Own Generic Types
pagenum: 168; title: Using Your Generic Type in Your Class
pagenum: 168; title: Constraints for Type Parameters
pagenum: 170; title: Generic Methods
pagenum: 172; label: Part 4
title: Advanced Topics; label: 26
title: Namespaces and Using Directives
pagenum: 175; title: Namespaces
pagenum: 175; title: Fully Qualified Names
pagenum: 176; title: Using Directives
pagenum: 176; title: The Error 'The type or namespace X could not be found'
pagenum: 177; title: Name Collisions
pagenum: 178; title: Static Using Directives
pagenum: 179; label: 27
title: Methods Revisited
pagenum: 181; title: Optional Parameters
pagenum: 181; title: Named Parameters
pagenum: 182; title: Variable Number of Parameters
pagenum: 183; title: The 'out' and 'ref' Keywords
pagenum: 183; label: 28
title: Reading and Writing Files
pagenum: 186; title: All At Once
pagenum: 186; title: Text-Based Files
pagenum: 188; title: Binary Files
pagenum: 189; label: 29
title: Error Handling and Exceptions
pagenum: 191; title: How Exception Handling Works
pagenum: 192; title: Catching Exceptions
pagenum: 193; title: Not Giving the Exception Variable a Name
pagenum: 194; title: Handling Different Exceptions in Different Ways
pagenum: 194; title: Throwing Exceptions
pagenum: 195; title: The 'finally' Keyword
pagenum: 196; title: Exception Filters
pagenum: 197; title: Some Rules about Throwing Exceptions
pagenum: 198; label: 30
title: Delegates
pagenum: 199; title: Delegates: Treating Methods like Objects
pagenum: 199; title: Creating a Delegate
pagenum: 199; title: Using Delegates
pagenum: 200; title: The Delegate and MulticastDelegate Classes
pagenum: 201; title: Delegate Chaining
pagenum: 203; title: The Action and Func Delegates
pagenum: 205; label: 31
title: Events
pagenum: 206; title: Defining an Event
pagenum: 207; title: Raising an Event
pagenum: 208; title: Attaching and Detaching Event Handlers
pagenum: 210; title: Common Delegate Types Used with Events
pagenum: 211; title: The Relationship between Delegates and Events
pagenum: 212; label: 32
title: Operator Overloading
pagenum: 214; title: Overloading Operators
pagenum: 215; label: 33
title: Indexers
pagenum: 219; title: How to Make an Indexer
pagenum: 219; title: Using Other Types as an Index
pagenum: 220; title: Index Initializer Syntax
pagenum: 221; label: 34
title: Extension Methods
pagenum: 223; title: Creating an Extension Method
pagenum: 224; label: 35
title: Lambda Expressions
pagenum: 227; title: The Motivation for Lambda Expressions
pagenum: 227; title: Lambda Expressions
pagenum: 229; title: Multiple and Zero Parameters
pagenum: 230; title: Type Inference and Explicit Types
pagenum: 230; title: Statement Lambdas
pagenum: 231; title: Scope in Lambda Expressions
pagenum: 231; title: Expression-Bodied Members
pagenum: 231; label: 36
title: Query Expressions
pagenum: 233; title: What is a Query Expression?
pagenum: 233; title: LINQ and Query Expressions
pagenum: 234; title: Creating a Simple Query Expression
pagenum: 234; title: More Complicated where Clauses
pagenum: 235; title: Multiple from Clauses
pagenum: 236; title: Ordering Results
pagenum: 237; title: Retrieving a Different Type of Data
pagenum: 237; title: Method Call Syntax
pagenum: 237; title: We're Just Scratching the Surface
pagenum: 238; label: 37
title: Threads
pagenum: 239; title: Threading Code Basics
pagenum: 240; title: Using ParameterizedThreadStart
pagenum: 242; title: Thread Safety
pagenum: 244; label: 38
title: Asynchronous Programming
pagenum: 246; title: What is Asynchronous Programming?
pagenum: 247; title: Approaches from the Early Days
pagenum: 247; title: The Task-based Asynchronous Pattern
pagenum: 251; title: The 'async' and 'await' Keywords
pagenum: 252; label: 39
title: Other Features in C#
pagenum: 254; title: Iterators and the Yield Keyword
pagenum: 255; title: Constants
pagenum: 256; title: Unsafe Code
pagenum: 257; title: Attributes
pagenum: 259; title: The 'nameof' Operator
pagenum: 260; title: Bit Fields
pagenum: 261; title: Reflection
pagenum: 264; title: Using Statements and the IDisposable Interface
pagenum: 265; title: Preprocessor Directives
pagenum: 266; title: Implicitly Typed Local Variables and Anonymous Types
pagenum: 268; title: Nullable Types
pagenum: 269; title: Simple Null Checks: Null Propagation Operators
pagenum: 270; title: Command Line Arguments
pagenum: 272; title: User-Defined Conversions
pagenum: 273; label: Part 5
title: Mastering the Tools; label: 40
title: C# and the .NET Framework
pagenum: 277; title: Binary, Assembly, Languages, and Compiling
pagenum: 277; title: Virtual Machines and the CLR
pagenum: 278; title: Advantages of the CLR
pagenum: 281; title: The Drawbacks of Virtual Machines
pagenum: 282; title: The BCL and FCL Class Libraries
pagenum: 283; label: 41
title: Getting the Most from Visual Studio
pagenum: 285; title: Windows
pagenum: 285; title: The Options Dialog
pagenum: 287; title: Including and Excluding Files
pagenum: 288; title: Showing Line Numbers
pagenum: 288; title: IntelliSense
pagenum: 289; title: Basic Refactoring
pagenum: 290; title: Keyboard Shortcuts
pagenum: 290; label: 42
title: Referencing Other Projects
pagenum: 291; title: Referencing Existing Projects
pagenum: 292; title: Adding a Reference to .NET Framework Assemblies
pagenum: 293; title: Adding a DLL
pagenum: 294; label: 43
title: Handling Common Compiler Errors
pagenum: 296; title: Understanding Compiler Errors
pagenum: 296; title: Compiler Warnings
pagenum: 297; title: Common Compiler Errors
pagenum: 297; title: General Tips for Handling Errors
pagenum: 302; label: 44
title: Debugging Your Code
pagenum: 304; title: Launching Your Program in Debug Mode
pagenum: 304; title: Viewing Exceptions
pagenum: 305; title: Editing Your Code While Debugging
pagenum: 306; title: Breakpoints
pagenum: 307; title: Stepping Through Your Program
pagenum: 308; label: 45
title: How Your Project Files are Organized
pagenum: 311; title: Visual Studio's Projects Directory
pagenum: 312; title: The Solution Directory
pagenum: 312; title: The Project Directory
pagenum: 313; label: Part 6
title: Wrapping Up; label: 46
title: Try It Out!
pagenum: 317; title: Message from Julius Caesar
pagenum: 318; title: Reverse It!
pagenum: 319; title: Pig Dice
pagenum: 319; title: Connect Four
pagenum: 320; title: Conway's Game of Life
pagenum: 320; label: 47
title: What's Next?
pagenum: 323; title: Other Frameworks and Libraries
pagenum: 323; title: Other Topics
pagenum: 325; title: Make Some Programs
pagenum: 325; title: Where Do I Go to Get Help?
pagenum: 326; title: Parting Words
pagenum: 326