This chapter's project will add a lot of code to the Library application, as much as 25% of the full code base. Most of it is identical to code we added in earlier chapters, so I won't print it all here. There's a lot to read here, too, so I won't overload you with pasting code snippets right and left. But as you add each new form to the project, be sure to look over its code to become familiar with its inner workings.
Load the Chapter 12 (Before) Code project, either through the New Project templates or by accessing the project directly from the installation directory. To see the code in its final form, load Chapter 12 (After) Code instead.
Operator overloading is a useful tool, and I have grown especially fond of the
CType overload. Let's add a
CType overload to a class we first designed back in Chapter 8:
ListItemData. This class exposes both
ItemData properties, providing access to the textual and numeric aspects of the class content. Its primary purpose is to support the tracking of ID numbers in
ComboBox controls. If we need to know the ID number of a selected item in a
ListBox control (let's name it
SomeList), we use code similar to the following:
Dim recordID As Integer = _ CType(SomeList.SelectedItem, ListItemData).ItemData
There's nothing wrong with that code. But I thought, "Wouldn't it be nice to convert the
ListItemData instance to an
Integer using the
CInt function, and not have to mess with member ...