Cover
Copyright
Contributors
Table of Contents
Preface
Chapter 1: Hello, C#! Welcome, .NET!
Introducing this book and its contents
Setting up your development environment
Understanding .NET
Building console apps using Visual Studio 2022
Building console apps using Visual Studio Code
Making good use of the GitHub repository for this book
Looking for help
Practicing and exploring
Summary
Chapter 2: Speaking C#
Introducing the C# language
Discovering your C# compiler version
Understanding C# grammar and vocabulary
Working with variables
Exploring more about console apps
Understanding async and await
Practicing and exploring
Summary
Chapter 3: Controlling Flow, Converting Types, and Handling Exceptions
Operating on variables
Understanding selection statements
Understanding iteration statements
Storing multiple values in an array
Casting and converting between types
Handling exceptions
Checking for overflow
Practicing and exploring
Summary
Chapter 4: Writing, Debugging, and Testing Functions
Writing functions
Debugging during development
Hot reloading during development
Logging during development and runtime
Unit testing
Throwing and catching exceptions in functions
Practicing and exploring
Summary
Chapter 5: Building Your Own Types with Object-Oriented Programming
Talking about OOP
Building class libraries
Storing data in fields
Working with methods and tuples
Controlling access with properties and indexers
Pattern matching with objects
Working with record types
Practicing and exploring
Summary
Chapter 6: Implementing Interfaces and Inheriting Classes
Setting up a class library and console application
Static methods and overloading operators
Making types safely reusable with generics
Raising and handling events
Implementing interfaces
Managing memory with reference and value types
Working with null values
Inheriting from classes
Casting within inheritance hierarchies
Inheriting and extending .NET types
Summarizing custom type choices
Practicing and exploring
Summary
Chapter 7: Packaging and Distributing .NET Types
The road to .NET 8
Understanding .NET components
Publishing your code for deployment
Native ahead-of-time compilation
Decompiling .NET assemblies
Packaging your libraries for NuGet distribution
Working with preview features
Practicing and exploring
Summary
Chapter 8: Working with Common .NET Types
Working with numbers
Working with text
Pattern matching with regular expressions
Storing multiple objects in collections
Working with spans, indexes, and ranges
Practicing and exploring
Summary
Chapter 9: Working with Files, Streams, and Serialization
Managing the filesystem
Reading and writing with streams
Encoding and decoding text
Serializing object graphs