Errata


Print Print Icon

Submit your own errata for this product.


The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.


Color Key: Serious Technical Mistake Minor Technical Mistake Language or formatting error Typo Question



Version Location Description Submitted By Corrected
Printed Page 8
line 5

the complier.
should be:
the compiler.

Anonymous  Apr 2008
Printed Page 44
2nd para under Numeric Types

The reason a ushort can hold up to 65,535 is that 65,535 is a round
number in binary arithmetic (2^16).
->
The reason a ushort can hold up to 65,535 is that 65,536 is a round
number in binary arithmetic (2^16) and one bit is devoted to 0.

#########################################

Anonymous  May 2007
Printed Page 49
Definite Assignment first line

C# requires definite assignment; that is, variables must be
initialized (or assigned to) before they are "used."

->

C# requires definite assignment; that is, variables must be
initialized (or assigned to) before they are "used" (see "out
Parameters and Definite Assignment" in Chapter 8).

#########################################

Anonymous  May 2007
Printed Page 52
Enumerations: The MSDN and my book shows the syntax of an enumeration requiring an ending

semicolon, but that is not correct; leaving out the semicolon has no effect (see example 3-5)

Anonymous 
Printed Page 54
Last example

NOW READS:
int myInt = 5;
short myShort = (short) myInt; // not (int) myInt

Anonymous  Jun 2006
Printed Page 54
Box on Casting;

the final line of code changed to:
short myShort = (short) myInt; // explicit conversion

Anonymous  Dec 2006
Printed Page 121
3rd paragraph

In the sentence: "In Example 7-2, DisplayCurrentTime()was invoked from a method of
Tester (not Time),..." the reference NOW READS Example 7-1 not 7-2.

Anonymous  Jun 2006
Printed Page 127
Second code snippet (SetTime)

this.hour = hour
->
this.hour = newHour

#########################################

Anonymous  May 2007
Printed Page 129
top of page

Class1
->
Program

#########################################

Anonymous  May 2007
Printed Page 153
Example 8-3, top

theSecond )= Second;
->
theSecond = Second;

#########################################

Anonymous  May 2007
Printed Page 155
Example 8.4/ toward the bottom of the page

public void GetTime(
int theHour,
int theMinute,
int theSecond )

NOW READS:
public void GetTime(
ref int theHour,
ref int theMinute,
ref int theSecond )
etc

Anonymous  Jun 2006
Printed Page 155
Example 8-4 Method

GetTime(), all parameters changed to:

GetTime(ref int theHour, ref int theMinute, ref int theSecond) {

Anonymous  Dec 2006
Printed Page 168
3rd line

Recalulate
->
Reevaluate

#########################################

Anonymous  May 2007
Printed Page 200
under Controlling Access

MyOtherClass inherits myValue from MyClass thus the definition of MyOtherClass

public class MyOtherClass : MyClass
{
Console.WriteLine("myInt: {0}", myInt);
}

NOW READS:

public class MyOtherClass : MyClass
{
Console.WriteLine("myInt: {0}", myValue);
}

Furthermore, all subsequent appearances of myInt in the Controlling Access section
HAVE BEEN CHANGED to myValue

Anonymous  Jun 2006
Printed Page 264
first bullet of Summary on that page

"In the new interface definition, use the colon operator followed by the name of the
name of..."
The duplicate instance of "the name of" HAS BEEN DELETED.

Anonymous  Jun 2006
Printed Page 265
Exercise 13-3

Extend the interface by creating a new interface, IConvertible

NOW READS:
Extend the interface by creating a new interface, ICodeChecker

Anonymous  Jun 2006
Printed Page 265
Exercise 13-3

Extend the interface by creating a new interface IConvertible
->
Extend the interface by creating a new interface ICodeChecker

Anonymous  Dec 2006
Printed Page 266
Generics: first sentence

(ArrayList, Stack, and Queue)
->
(Array, List, Stack, and Queue)

#########################################

Anonymous  May 2007
Printed Page 296
bottom of page

in the output of example 14-8 the last line displays:

The new array:
25 20 15 10 5 0

yet there's no corresponding code section for it in the code of example 14-8. I
assume that ouput should have been generated by an "intStack.Toarray()" command
followed by the proper "Console.WriteLine" statement iterated through the new array
to display its elements.

Anonymous 
Printed Page 309
Example 15-3; (will be fixed in new edition per author)

that example and the related explanation doesn't make much sense and actually
confuses the reader more. a full explanation of it wouldn't fit in here, but there
are subtle errors in the code, like [Console.WriteLine( "
s2 = "Hello"; ");] which
first of all doesn't even appear in the representation of the output; it also
contains an extra semi-colon (guess which one it is?!) and s1 is the one set to
"Hello" on the next line, not s2. in the explanation you say [Now, returining to s1
and s2, ...] and then skip to [s3 = "Goodbye";] without even mentioning the
correlation between s1 and s2. on top of that. I believe that even after s1 and s3
are reassigned there still remains one instance of the original string referred to by
s1 (you said there weren't anymore) and that is s2 since it was created with the =
operator. Confused yet?
anyway, this whole example needs to be reviewed.

Anonymous 
Printed Page 349
Indent after 2nd para

public delegate Comparison WhichIsFirst<T>( T obj1, T obj2 );
->
public delegate Comparison WhichIsFirst( T obj1, T obj2 );

Anonymous  Dec 2006
Printed Page 359
Code after after 6th para

public delegate void SecondChangeEventHandler: (object clock...
->
public delegate void SecondChangeEventHandler (object clock...

Anonymous  Dec 2006
Printed Page 361
bottom of the page

theClock.SecondChanged += new Clock.SecondChangeHandler(TimeHasChanged);
->
theClock.SecondChanged += new Clock.SecondChangeEventHandler(TimeHasChagned);

Anonymous  Dec 2006
Printed Page 371
beginning of Using Anonymous Methods section

theClock.SecondChanged += TimeHasChanged;
->
theClock.SecondChanged += new Clock.SecondChangeHandler(TimeHasChanged);

Anonymous  Dec 2006
Printed Page 394
2nd code block from bottom

protected void btnCopy_Click
->
private void btnCopy_Click

#########################################

Anonymous  May 2007
Printed Page 394
beginning of bottom half of page

on page 392, btnCopy_Click was declared as:
private void btnCopy_Click(object sender, System.EventArgs e)
but now it's
protected void btnCopy_Click(object sender, System.EventArgs e)

One might get confused into thinking that they are 2 different event handlers.

Anonymous  Sep 2007