Skip to main content


Beginning C# 7 Programming with Visual Studio 2017

Benjamin Perkins, Jacob Vibe Hammer, Jon D. Reid

ISBN: 978-1-119-45868-5 April 2018 912 Pages

Editions Next


 Easily get started programming using the ultra-versatile C# 7 and Visual Studio 2017

Beginning C# 7 Programming with Visual Studio 2017 is the beginner’s ultimate guide to the world’s most popular programming language. Whether you’re new to programming entirely, or just new to C#, there has never been a better time to get started. The new C# 7 and Visual Studio 2017 updates feature a number of new tools and features that streamline the workflow, simplify the code, and make it easier than ever to build high-quality apps. This book walks you through everything you need to know, starting from the very basics, to have you programming in no time. You’ll learn about variables, flow control, and object oriented programming, then move into Web and Windows programming as well as databases and XML. The companion website provides downloadable code examples, and practical Try It Out sections provide explicit, step-by-step instructions for writing your own useful, customizable code.

C# 7 can be used to build Windows applications, program Windows 10, and write Web apps when used alongside ASP.NET. With programming skills becoming de rigueur in fields far beyond the tech world, C# 7 is a great place to start building versatile, helpful skills. This book gets you started quickly and easily with instruction from a master-team of C# programmers.

  • Learn how to program using the world’s leading programming language
  • Build smarter, faster apps using the latest features in C# 7 and Visual Studio 2017
  • Find and fix bugs sooner, saving headaches down the line
  • Integrate with all .NET Core, Azure applications, cloud services, Docker containers, and more

The world of programming can seem intimidating to a beginner, and the prospect of learning a whole new “language” can seem daunting. Beginning C# 7 Programming with Visual Studio 2017 demystifies the process and shows you how to bring your ideas to life.

Introduction xxi

Part I: The C# Language

Chapter 1: Introducing C# 3

What Is the .NET Framework? 4

What Is C#? 9

Visual Studio 2017 11

Chapter 2: Writing a C# Program 15

The Visual Studio 2017 Development Environment 16

Console Applications 21

Desktop Applications 26

Chapter 3: Variables and Expressions 33

Basic C# Syntax 34

Basic C# Console Application Structure 36

Variables 38

Expressions 46

Chapter 4: Flow Control 59

Boolean Logic 60

Branching 65

Looping 72

Chapter 5: More About Variables 83

Type Conversion 84

Complex Variable Types 91

String Manipulation 109

Chapter 6: Functions 117

Defining and Using Functions 118

Variable Scope 131

The Main() Function 138

Struct Functions 141

Overloading Functions 142

Using Delegates 144

Chapter 7: Debugging and Error Handling 149

Debugging in Visual Studio 150

Error Handling 167

Chapter 8: Introduction To Object-Oriented Programming 179

What Is Object-Oriented Programming? 180

OOP Techniques 186

OOP in Desktop Applications 196

Chapter 9: Defining Classes 203

Class Definitions in C# 204

System. Object 209

Constructors and Destructors 211

OOP Tools in Visual Studio 216

Class Library Projects 222

Interfaces Versus Abstract Classes 226

Struct Types 228

Shallow Copying Versus Deep Copying 230

Chapter 10: Defining Class Members 233

Member Definitions 234

Additional Class Member Topics 244

Interface Implementation 249

Partial Class Definitions 252

Partial Method Definitions 253

Example Application 255

The Call Hierarchy Window 265

Chapter 11: Collections, Comparisons, and Conversions 269

Collections 270

Comparisons 292

Conversions 313

Chapter 12: Generics 319

What Are Generics? 320

Using Generics 321

Defining Generic Types 339

Variance 353

Chapter 13: Additional C# Techniques 359

The :: Operator and the Global Namespace Qualifier 360

Custom Exceptions 361

Events 363

Expanding and Using CardLib 375

Attributes 384

Initializers 386

Type Inference 392

Anonymous Types 394

Dynamic Lookup 398

Advanced Method Parameters 402

Lambda Expressions 409

Part II: Windows Programming

Chapter 14: Basic Desktop Programming 425

XAML 426

The Playground 429

Control Layout 441

The Game Client 452

Chapter 15: Advanced Desktop Programming 479

Creating and Styling Controls 480

WPF User Controls 485

The Main Window 499

Putting It All Together 504

Part III: Cloud and Cross-Platform Programming

Chapter 16: Basic Cloud Programming 533

The Cloud, Cloud Computing, and the Cloud Optimized Stack 534

Cloud Patterns and Best Practices 537

Using Microsoft Azure C# Libraries to Create a Storage Container 538

Creating an ASP.NET 4.7 Web Site That Uses the Storage Container 548

Chapter 17: Advanced Cloud Programming and Deployment 559

Creating an ASP.NET Web API 560

Deploying and Consuming an ASP.NET Web API on

Microsoft Azure 564

Scaling an ASP.NET Web API on Microsoft Azure 572

Chapter 18: .NET standard and .NET Core 579

Cross-Platform Basics and Key “Must Know” Terms 581

What Is .NET Standard, and Why Is It Needed? 583

Referencing and Targeting Frameworks 587

What is .NET Core? 588

Building and Packaging a .NET Standard Library 596

Building a .NET Core Application with Visual Studio 602

Porting from .NET Framework to .NET Core 605

Chapter 19: ASP.NET and ASP.NET Core 609

Overview of Web Applications 610

Which ASP.NET to Use and Why 611

Using ASP.NET Web Forms 620

Creating ASP.NET Core Web Applications 627

Part IV: Data Access

Chapter 20: Files 641

File Classes for Input and Output 642

Streams 647

Monitoring the File System 664

Chapter 21: XML and JSON 673

XML Basics 674

JSON Basics 674

XML Schemas 675

XML Document Object Model 677

Converting XML to JSON 689

Searching XML with XPath 691

Chapter 22: LINQ 697

LINQ to XML 698

LINQ Providers 704

LINQ Query Syntax 705

LINQ Method Syntax 709

Ordering Query Results 712

Understanding the orderby Clause 713

Querying a Large Data Set 714

Using Aggregate Operators 717

Using the Select Distinct Query 720

Ordering by Multiple Levels 723

Using Group Queries 725

Using Joins 727

Chapter 23: Databases 731

Using Databases 731

Installing SQL Server Express 732

Entity Framework 732

A Code First Database 733

But Where Is My Database? 740

Navigating Database Relationships 742

Handling Migrations 749

Creating and Querying XML from an Existing Database 750

Part V: Additional Techniques

Chapter 24: Windows Communication Foundation 761

What Is WCF? 762

WCF Concepts 763

WCF Programming 768

Chapter 25: Universal Apps 793

Getting Started 794

Windows Universal Apps 795

App Concepts and Design 796

App Development 797

Common Elements of Windows Store Apps 816

The Windows Store 818

Appendix: Exercise Solutions 821

Index 865

Chapter 2
Chapter 3
Chapter 4
Chapter 5
Chapter 6
Chapter 7
Chapter 8
Chapter 9
Chapter 10
Chapter 11
Chapter 12
Chapter 13
Chapter 14
Chapter 15
Chapter 16
Chapter 17
Chapter 18
Chapter 19
Chapter 20
Chapter 21
Chapter 22
Chapter 23
Chapter 24
Chapter 25
Full book Download
ChapterPageDetailsDatePrint Run
597Errata in text
Chapter 5
p. 97
TRY IT OUT: Using a Struct: Ch05Ex03\Program.cs
2. Add the following code to Program.cs:
using statis System.Console;
2. Add the following code to Program.cs:
using static System.Console;

Appendix Exercise Solutions821Errata in Text

Exercise 4

resultVar += (((var1 + var2) % var3) + (var4 / var5));

resultVar += (var1 * var2) + ((var3 % var4) / var5);