VB.NET Language in a Nutshell, 2nd Edition by Paul Lomax, Ron Petrusha, Steven Roman The unconfirmed error reports are from readers. They have not yet been approved or disproved by the author or editor and represent solely the opinion of the reader. 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 This page was updated March 16, 2004. UNCONFIRMED errors and comments from readers: (21) Last paragraph, fourth line from the bottom; Minor typo, the sentece should read "It can also be a custom event that you define in your code.", instead of "In can also be a custom event that you define in your code." {Chapter 3.4.4} has a few mistakes: After the exhibit of Class1 and Class1Derived, you declare c1, c2 and c1Var. you then call the objects incSalary method instead of showIncSalary (this mistake repeats itself throw the chapter). At the end of the chapter, you write: MyClass.IncSalary Returns 10000 Instead of 11000. (39) 3rd code section; The word "points" is misspelled as "poitns" in the sample code's comments. [41] Currency paragraph; Negative sign is missing from first number in range shown for the Variant Data Type: Currency. Last line in paragraph reads "Its value can range from 922,337,203,685,477.5808 to 922,337,203,685,477.5807." instead of "Its value can range from -922,337,203,685,477.5808 to 922,337,203,685,477.5807." [81] 3rd paragraph; ...output in this case is: Class2 method that overrides Class1 method that shadows x = 1 BUT it should be: Class1 method to shadow since the sample code on page 80 says so :) (110) 2nd; The text describes declaring a delegate: 'Delegate Sub AMethodDelegate(ByVal s As String)'. A little further down the page it says that you need to instantiate the delegate, but it leaves the word 'Method' out of the delegate's name: 'delg = New ADelegate(AddressOf obj.AMethod)' {121} Last paragraph; States that the Addhandler statement "makes it possible to bind several event handlers to a single event". It is, in fact, the other way around - multiple events are bound to a single handler. This error is repeated on page 95, third last paragraph. A small error in an otherwise excellent book. {175} Example 9-2; Example 9-2 creates an Integer and Object array like this : intArray = New Integer(5) {} empArray = New Employee(3) {} The above two statements create an Integer array of 6 elements (since 5 is the array's upper bound) and Employee object array (after initialization of the array, of course) of 4 Employee objects and NOT as show in the book example. The book example shows that the array created is 5 integers and 3 Employee objects and this is wrong ! [184] Example 9-6; Example 9-6 shows the creation of a two dimensional array : 'declare a 4X3 Integer array Dim rectangularArray(rowsUB, columnsUB) As Integer Since rowsUB is iniatilized to 4 and columns UB is initialized to 3, this creates an array of 5 rows and 4 columns (5X4 Integer array) and NOT 4X3 as shown in the example in the book. Also, in the same example there is no need to do rowsUB - 1 or columnsUB - 1 when accessing the rows or columns in the array, since rowsUB and columnsUB define the upper bound of the array. [330] The format specifiers listed for the Format Function in the language reference have a serious error in that 'n' is not a valid format specifier, and instead is passed through as a literal character. 'n' should instead be 'm' (lower-case) which is used to specify minutes. Months should be specified as 'M' (upper-case) in your format string. For example: Format("10/1/2002 11:47 AM", yyyy-mm-dd) will yield "2002-47-01". Format("4/6/2002 12:15 AM", hh:nn:ss) will yield "12:nn:15". Furthermore, the documentation for hour values is incomplete, just showing 'h' and 'hh' which are hour values in non-24 hour format (5pm instead of 17:00), without and with leading zeros. There are two other formats 'H' and 'HH' which format the time into a 24-hour format. {385} the last entry under "Condition" heading reads " start > len(string2) " to indicate that this would return 0. This isn't true and is a carry over from the same mistake in Microsoft' documentation. It should read "start > len(string1)" . To start searching in string1 past the length of string1 returns 0. {412} "The inverse trigonometric functions,..." Should read "The inverse hyperbolic functions,..." {423} What method of calculation was used to determine that minimum of 5 and 454.8 is 454.8. *** This is actually an error, I believe it should return "5". - Chris Olson