I just spent the last couple of days reading Robin A. Reynolds-Haertle’s book OOP with Microsoft Visual Basic .NET and Microsoft Visual C# .NET Step by Step by Microsoft Press, 2002 (ISBN 0-7356-1568-3).
Overall this is a good book to purchase for someone starting out in OOP from a VB background or is using C# as their first modern OOP language. The flow of the book is easy with lots of code samples. Note that every example has both VB and C# code. For this reason, I will be highly recommending this book to classic VB’ers. While it helps move the developer into OOP, they can quickly learn how to read in C#. Despite the loyalty that many have to VB and that “Edit and Continue“ is back with Whidbey, reading C# is career critical.
I particularly like Chapter 10 – Using Classes Interchangeably Through Polymorphism. I admit, I’m not much of a graphics person, but this was a great example of using classes and abstracting the requirement of numerous class names. Many of the examples are simple in nature and only one is a console app. Despite the simplicity of the concept of the examples, the codes are rich in OOP technology.
For those coming from a Java or C++ background, they need not pick it up the for themselves. There are a few items that very quickly will cause some readers to lose credibility in the text quickly. Ms. Reynolds-Haertle takes a few liberties to help the VB (pre .NET) developer understand some terms. For example, on page 9 the author states,
In this book, I use the word set to mean changing a property. I use the word get to mean retrieving the value of a property. The Get ans Set blocks as a property can be called getters and setters, or accessors.
While I use to refer to properties as getters and setters, I have changed my vocab to reflect java and C++ standards and the standards of many other C# professionals. Therefore, I would never refer to both of these as accessors. I use the terms accessors and mutators respectively. Interestingly, several books on my shelf from the .NET camp refer to only accessors. So maybe I harp for no reason. What do you think?
In conslusion, VB’ers get this book! Then follow up with several of the books listed in the references. You will be on your way to writing efficient code.