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 "Date Corrected".
The following errata were submitted by our customers and approved as valid errors by the author or editor.
| Version |
Location |
Description |
Submitted By |
Date Submitted |
Date Corrected |
| Printed |
Page 8
line 5 |
the complier.
should be:
the compiler.
|
Anonymous |
|
Apr 01, 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 01, 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 01, 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 01, 2006 |
| Printed |
Page 54
Box on Casting; |
the final line of code changed to:
short myShort = (short) myInt; // explicit conversion
|
Anonymous |
|
Dec 01, 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 01, 2006 |
| Printed |
Page 127
Second code snippet (SetTime) |
this.hour = hour
->
this.hour = newHour
#########################################
|
Anonymous |
|
May 01, 2007 |
| Printed |
Page 129
top of page |
Class1
->
Program
#########################################
|
Anonymous |
|
May 01, 2007 |
| Printed |
Page 153
Example 8-3, top |
theSecond )= Second;
->
theSecond = Second;
#########################################
|
Anonymous |
|
May 01, 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 01, 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 01, 2006 |
| Printed |
Page 168
3rd line |
Recalulate
->
Reevaluate
#########################################
|
Anonymous |
|
May 01, 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 01, 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 01, 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 01, 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 01, 2006 |
| Printed |
Page 266
Generics: first sentence |
(ArrayList, Stack, and Queue)
->
(Array, List, Stack, and Queue)
#########################################
|
Anonymous |
|
May 01, 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 01, 2006 |
| Printed |
Page 359
Code after after 6th para |
public delegate void SecondChangeEventHandler: (object clock...
->
public delegate void SecondChangeEventHandler (object clock...
|
Anonymous |
|
Dec 01, 2006 |
| Printed |
Page 361
bottom of the page |
theClock.SecondChanged += new Clock.SecondChangeHandler(TimeHasChanged);
->
theClock.SecondChanged += new Clock.SecondChangeEventHandler(TimeHasChagned);
|
Anonymous |
|
Dec 01, 2006 |
| Printed |
Page 371
beginning of Using Anonymous Methods section |
theClock.SecondChanged += TimeHasChanged;
->
theClock.SecondChanged += new Clock.SecondChangeHandler(TimeHasChanged);
|
Anonymous |
|
Dec 01, 2006 |
| Printed |
Page 394
2nd code block from bottom |
protected void btnCopy_Click
->
private void btnCopy_Click
#########################################
|
Anonymous |
|
May 01, 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 01, 2007 |