It's indeed true that objects are "language neutral," and so what you'll learn conceptually about objects in Part One of this book, and about object modeling in Part Two, could apply equally well to C#, or Java, or C++, or Ada, or Smalltalk, or an as-yet-to-be-invented object-oriented (OO) language.
We've found that seeing a sprinkling of code examples helps to cement object concepts; but, we could have simply used language-neutral pseudocode—a natural-language way of expressing computer logic without worrying about the syntax of a specific language like C#—for all of our code examples in Parts One and Two.
This brings us back to our initial question: why are we diving into C# syntax so soon? Our reason for doing so is that we'd like you to become comfortable with C# syntax from the start, because our goal for this book is not only to teach you about objects and object modeling, but also to ultimately show you how objects translate into C# code. So, although we do indeed use a bit of pseudocode to hide some of the more complex logic of our code examples throughout Parts One and Two, we focus for the most part on real C# syntax. Just remember that the object concepts you'll learn in Parts One and Two of our book are equally applicable to other OO languages, unless otherwise noted.
In this chapter, you'll learn about
The many strengths of the C# programming language
Predefined C# types, operators on those types, and expressions formed with those types
The anatomy of a simple C# program
C#'s block structured nature
Various types of C# expressions
Printing messages to the screen, primarily for use in testing code as it evolves
Elements of C# programming style
If you're a proficient C, C++, or Java programmer, you'll find much of C# syntax to be very familiar, and you should be able to breeze through this chapter fairly quickly.
If you've already been exposed to C# language basics, please feel free to skip to Chapter 2.