Programming Visual Basic .NET, 2nd Edition by Jesse Liberty This errata page lists errors outstanding in the most recent printing. If you have technical questions or error reports, you can send them to booktech@oreilly.com. Please specify the printing date of your copy. This page was updated September 29, 2004. Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem ?page-number?: reader question or request for clarification Confirmed errors: Please note: this book assumes you are compiling in Visual Studio .NET and not from the command line. If you do compile from the command line you will need to add at least the namespace Micrsofot.VisualBasic for such constructs as IIF and vbTab. I highly recommend investing the $100 necessary to buy Visual Basic .NET which comes with Visual Studio as its editor/compiler/debugger, etc. {28} last line; The formal syntax for the declaration of a symbolic constant is given as: Const value as type = identifier I believe it should read: Const identifier as type = value [156] 1st Paragraph; On Pg. 156, the first sentence stated that: "Alternatively, you can create an instance of the interface, and then use that interface to access the methods of that interface..." I believe the phrase in the above sentence: "...you can create an instance of the interace..." is not consistent with what you have said on the first paragraph of Pg. 152: "...Keep in mind that you cannot create an instance of an interface; instead you instantiate a class that implements the interface." Subsequent paragraphs on Page 156 repeatedly refered to "an instance of the interface" . I understand what you tried to explain, but we cannot create an instance of any interface. Reference variable of specific interface type would be more appropriate. I also believe that statement on Page 152 is correct and statement on Page 156 is not technically correct because we cannot create an instance of an interface(in Java/C# or VB.NET). (159) Last paragraph; The code snipet in the last paragraph: If TypeOf doc Is ICompressible Then Dim icDoc As ICompressible = CType(doc, ICompressible) icDoc.Compress() Else ... Noted that assignment statement: Dim icDoc As ICompressible = CType(doc, ICompressible) This is not consistent with code statement in Example 8-3: Dim icDoc As ICompressible = doc (171) 2nd paragraph of the Section Declaring Arrays; The statement: Dim myIntArray As Integer = new Integer(6) is missing {} at the end, and should be replaced with: Dim myIntArray As Integer = new Integer(6) {} [171] 2nd code example; In the second code example on the page, the comment indicates that the arrays being initialized will have 6 members. In fact, they will have 7 members. The erroneous figure of "six" is also used in the following paragraph. (190) Last paragraph; The second sentence: "...Note, however, that to reverse or sort...., they must be of a type that implements the IComparable interface, described in Chapter 8." I believe the IComparable interface has not yet been discussed in Chapter 8. It will be discuss in Chapter 10 Page 230, Two minor changes here. First, in Unicode and in ASCII, lower case letters have larger values than uppercase. Second, when comparing two strings, the specification is that the comparison will yield a positive or negative value or zero, not specifically -1 or 1. [231-233] Example 10-3, Example 10-4, Example 10-5; Example 10-3 on Page 231, Example 10-4 on Page 232, and Example 10-5 on Page 233 define the variable Dim s1 As String = "abcd" Which were never be used in these above examples. (236) 1st Paragraph; On page 236, 1st paragraph, second line: "IndexOf() method returns....the first occurrence1fc of the string..." replace "occurence1fc" with "occurrence" (244) In Public Sub Run; Dim id As Integer = 1 produces the following output: 2: One 3: Two 4: Three 5: Liberty 6: Associates 7: Inc. To match the expected output in the book, 1: One 2: Two 3: Three 4: Liberty 5: Associates 6: Inc. id should be initialized to 0 rather than 1. So change to: Dim id As Integer = 0 (249) 2nd paragraph from the last; Second paragraph from the end of the page: Replace: ("(?