Object-Oriented Programming with Visual Basic .NET by J. P. Hamilton 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 February 05, 2003. UNCONFIRMED errors and comments from readers: [10] Example 2-1 in Chapter 2; I am working off an online book so I do not have the exact page number. The error (I believe) is in Chapter 2. Object Fundamentals 2.1 Creating and compiling the component. The instructions tell you to save the file as "Hello.vb" and compile Hello.vb into a .dll to be used with a client program created a bit later called "hello-client." The client program imports the "greeting" namespace (inwhich the "hello" class is defined), NOT the Hello namespace, so this example does not work because the instruction in 2-1 are incorrect. I changed the file name in example 2-1 to "greeting.vb" (not hello.vb) and compiled the file into "greeting.dll" since it is the greeting namespace that is being imported in the hello-client.exe program. The example works fine now. {33} Following the Console.WriteLine("Hello, world") top of the page; insert: Console.ReadLine() Some of the examples early in the book have "Console.ReadLine()" following one or more "Console.WriteLine(s)", for example: Page 13, Example 2-2. "Hello, world" client Page 27, Example 2-5. A phone in VB Page 29, Example 2-6. Phone in .NET Where the examples later in the book don't, for example: Page 33, Example 3-2. Member variables (continued) Page 36, Example 3-3. Default properties (continued) Page 50, Example 3-6. Goodbye, World! in the Finalize destructor (It's needed here only to pause the console long enough to see the result). [34] throughout; Visual Basic .NET is not case sensitive, so when declaring properties, one can't use the same name regardless of case for the Property and the Private member variable. This is displayed throughout the book. Use a leading underscore for Private member variable. (34) last sentence in the continuation of the paragraph from previous page; Sentence reads, "To provide read-only access, the programmer would forgo the get_ method." Should read, "... forgo the set_method." {45} following Console.WriteLine(B.Text) in Example 3-5; insert Console.ReadLine() following Console.WriteLine(B.Text) else when running the example the window closes before the reader is able to see the displayed text. (66) Top of the page in Public Sub New...; Me.matches = maches should be Me.matches = matches [83] Last sentence, last paragraph: "If a default constructor isn't explicitly....; I'm using: Microsoft Development Environment 2002 v7.0.9466 Microsoft .NET Framework 1.0 v1.0.3705 to work the examples. It appears as if the environment requires an explicit definition of the default constructor. If the default constructor is missing, the DE complains with: "First statement of this 'Sub New' must be a call to 'MyBase.New' or 'MyClass.New' because the base class 'PaymentClass.Payment' of 'CreditCardClass.CreditCard' does not have an accessible 'Sub New' that can be called with no arguments." It would be very helpful if the next edition had a chapter or two on working the examples in the Development Environment. (84) Top of the page: Console.WriteLine... acctNumber; Console.WriteLine("Payment.New: {0}", acctNumber) should be Console.WriteLine("Payment.New: {0}", account) {209} Mid page: Peter Parker; Shouldn't: Peter Parker actually be: Peter given the previous code / result? And Shouldn't: actually be: