This book is about the C# programming language. It often means going into some details of the runtime responsible for executing your code and the libraries that support your application, but the focus is firmly on the language itself.
The goal of the book is to help you become as comfortable with C# as possible, so you never need to feel like you're fighting against the language. I want you to feel fluent in C#, with the connotations of working in a smooth and flowing way. Think of C# as a river, and you're paddling in a kayak. The more you know about the river, the faster you can travel with its current. Sometimes, you might want to go upstream for some reason, but even then, understanding how the river works will make it easier for you to reach your destination without getting stuck.
If you're an experienced C# programmer who wants to learn more about the language, this book is for you! You don't need to be an expert to understand this book, but I hope it will help you gain a deeper understanding of the language and its features.You know the basics of C#. I'll explain all the terminology that I use, which was introduced after C# 1, and some older terms that are often misunderstood (such as parameters and arguments). However, I assume you already know what a class is and what an object is. If you're an expert, you may still find this book useful because it offers different ways of thinking about familiar concepts. You may also discover areas of the language that you weren't aware of; I know this has been my experience while writing the book.
If you're completely new to C#, this book might not be useful for you yet. There are many introductory books and online tutorials available on C#. Once you've mastered the basics, I hope you'll return and dive deeper into the subject.