Errata
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.
Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update
Version | Location | Description | Submitted By | Date submitted | Date corrected |
---|---|---|---|---|---|
Printed | Page xxxi |
Invalid URL |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 10 |
MSCorLib.dll Should Be MSCorEE.dll in Diagram 1-3 |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 14 |
Invalid URL |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 20 |
Verifier Should Be Verification |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 28 |
Missing Text |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 77 |
AssemblyAlgIDAttribute Should Be AssemblyAlgorithmidAttribute |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 81 |
Bad Breaks In Listing |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 107 |
Policy.1.0.MyAsm.dll Should Be Policy.1.0.JeffTypes.dll |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 116 |
Incorrect Statement Regarding MemberwiseClone |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 121 |
Incorrect Table Number |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 123 |
Complier Should Be Compiler |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 126 |
System.Collections.ArrayList Should Be System.IO.FileStream |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 129 |
Int64 Should Be Int32 |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 129 |
BinaryRead Should Be BinaryReader |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 135 |
ValueType Should Be System.ValueType |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 140 |
InteropService Should Be Pluralized |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 141 |
void Should Be Int32 |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 152 |
p Should Be p2 |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 160 |
Capital "I" Needed |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 176 |
Incorrect Descriptions In Table 7-4 |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 179 |
Disregard Note Box |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 180 |
type's Should Be class's |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 188 |
Disregard Portion Of Sentence |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 202 |
Initialize Should Be Initialized |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 204 |
ProcessingFiles Should Be ProcessFiles |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 218 |
Missing Word |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 220 |
Delete Parenthesis |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 221 |
foreach Should Be for |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 223 |
Changes To Code Listing |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 232 |
Missing "virtual" |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 234 |
Transposed Text In Code Listing |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 255 |
.SubString Should Be .Substring |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 273 |
Correction To Table 12-4 |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 284 |
Doesn't Should Be Does |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 302 |
Missing Semicolon In Code Sample |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 310 |
Section Should Be Chapter |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 328 |
this Should Be other In Code Listing |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 337 |
Error In Code Sample |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 340 |
private Should Be protected |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 346 |
Incorrect Capitalization In Code Sample |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 355 |
Remove "and" |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 369 |
Error In Code Sample |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 374 |
Correction To Code Sample |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 378 |
Error In Code Sample |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 381 |
Missing Parenthesis In Code Sample |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 438 |
Error In Table 18-2 |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 473 |
"would" Should Be "should" |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 477 |
"didn't" Should Be "did" |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 492 |
Missing } Bracket In Code Sample |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 500 |
Error In Code Sample |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 535 |
Incorrect Version Statement |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 539 |
Error In Table 20-3 |
Microsoft Press | Jul 13, 2010 | |
Printed | Page 553 |
Incorrect Statement |
Microsoft Press | Jul 13, 2010 | |
Printed | Page xxviii |
Incorrect "And" In Lead-In In the lead-in line (in boldface) of the second entry on the page, remove the "and".Change:"Automatic memory and management (garbage collection)"To:"Automatic memory management (garbage collection)" |
Microsoft Press | May 06, 2010 | |
Printed | Page
http |
//go.microsoft.com/fwlink/?LinkId=5584." To: "You can download it from http://msdn2.microsoft.com/en-us/netframework/aa731542.aspx" |
Microsoft Press | May 06, 2010 | |
Printed | Page 11 |
Standard Edition Should Be Second Edition On page 11, in the first sentence of the third paragraph, Change: "[...] Windows 98 Standard Edition [...]" To: "[...] Windows 98 Second Edition [...]" |
Microsoft Press | May 06, 2010 | |
Printed | Page 19 |
System.Security.Verifier.Exception Should Be System.Security.VerificationException In the last sentence on page 19, Change: "[...] System.Security.Verifier.Exception [...]" To: "[...] System.Security.VerificationException [...]" |
Microsoft Press | May 06, 2010 | |
Printed | Page 27 |
CTS And CLR Should Be CLS On page 27, in the second sentence of the fourth paragraph, there is a reference to "CTS" and a reference to "CLR". Both of these should read "CLS". |
Microsoft Press | May 06, 2010 | |
Printed | Page 68 |
Standard Edition Should Be Second Edition On page 68, in the first paragraph, change the reference to "Windows 98 Standard Edition" to "Windows 98 Second Edition". |
Microsoft Press | May 06, 2010 | |
Printed | Page 78 |
Incorrect Build Number On page 78, in the listing AssemblyRef #1, Change: "Build Number: 0x0000c1e" To: "Build Number: 0x0000ce4" |
Microsoft Press | May 06, 2010 | |
Printed | Page 92 |
Error In Code Sample The second attribute of Step 1 on page 92 is incorrect. Change:[assembly:DelaySign(true)]To:[assembly:AssemblyDelaySign(true)] |
Microsoft Press | May 06, 2010 | |
Printed | Page 110 |
Standard Should Be Second On page 110, in the Note box, change the reference to "Windows 98 Standard Edition" to "Windows 98 Second Edition". |
Microsoft Press | May 06, 2010 | |
Printed | Page 119 |
public void Should Be public static void On page 119, in the first line of the listing, Change: public void PromoteEmployee(Object o) { ... To: public static void PromoteEmployee(Object o) { ... |
Microsoft Press | May 06, 2010 | |
Printed | Page 121 |
Corrections To Table Items On page 121, in the table "Type-Safety Quiz", there are three incorrect lines. On line 10, change: "B b3 = d1;" To: "B b4 = d1;" On line 15, change: "B b4 = (B) o1;" To: "B b5 = (B) o1;" On line 16, change: "B b5 = (D) b2;" To: "B b6 = (D) b2;" |
Microsoft Press | May 06, 2010 | |
Printed | Page 126 |
System.Collections.StringCollections Should Be System.IO.FileSystemWatcher On page 126, in the first paragraph of "How Namespaces and Assemblies Relate" change "System.Collections.StringCollections" to "System.IO.FileSystemWatcher" |
Microsoft Press | May 06, 2010 | |
Printed | Page 126 |
Correction To Sentence On page 126, in the box "How Names and Assemblies Relate", change the final line of the third paragraph from: "[...] source code and you'd use the /r:System.Windows.dll compiler switch." To: "[...] source code and use the /r:System.Windows.Forms.dll compiler switch."" |
Microsoft Press | May 06, 2010 | |
Printed | Page 129 |
Correction To Sentence On page 129, in the third bulleted item, change the first sentence: "[...] that have type names in the method." To: "[...] that have type names as part of their method names." |
Microsoft Press | May 06, 2010 | |
Printed | Page 130 |
Int64 Should Be Int16 There are two instances of Int64 that should be changed to Int16.Change:"converting from Single to Int64 requires a cast because Single can represent numbers of a larger magnitude than Int64 can."To:"converting from Single to Int16 requires a cast because Single can represent numbers of a larger magnitude than Int16 can." |
Microsoft Press | May 06, 2010 | |
Printed | Page 138 |
Missing "Is" On page 138, in the second sentence, Change: "[...] C# thinks the instance initialized [...]" To: "[...] C# thinks the instance is initialized [...]" |
Microsoft Press | May 06, 2010 | |
Printed | Page 141 |
Array Should Be ArrayList On page 141, in the code example, Change: ... a.Add(p); //Box the value type and add the // reference to the Array. ... To: ... a.Add(p); //Box the value type and add the // reference to the ArrayList. ... |
Microsoft Press | May 06, 2010 | |
Printed | Page 144 |
Missing Semicolon On page 144, in the code example, Change: ... o = p } To: ... o = p; } |
Microsoft Press | May 06, 2010 | |
Printed | Page 155 & 157 |
Correction To Code Sample On pages 155 and 157, approximately middle of each page, Change: // Optional overloads of the == and != operators public static Boolean operator==(MyRefType o1, MyRefType o2) { if (ol == null) return false; return ol.Equals(o2); } To: // Optional overloads of the == and != operators public static Boolean operator==(MyRefType o1, MyRefType o2) { return Object.Equals(o1, o2); } |
Microsoft Press | May 06, 2010 | |
Printed | Page 166 |
Correction To Code Sample On page 166, in the first code sample, Change: ... // Refer to a deep copy of the set passed. this.set = set.Clone(); To: ... // Refer to a shallow copy of the set passed. this.set = (ArrayList) set.Clone(); |
Microsoft Press | May 06, 2010 | |
Printed | Page 177 |
MaxInt32 Should Be MaxInt16 On page 177, on the last line, change "MaxInt32" to "MaxInt16". |
Microsoft Press | May 06, 2010 | |
Printed | Page 180 |
Correction To Code Sample On page 180, in the code sample, Change: ... // This is an instance read-only field. public String readonly pathName = "untitled"; To: ... // This is an instance read-only field. public readonly String pathName = "untitled"; |
Microsoft Press | May 06, 2010 | |
Printed | Page 186 |
Correction To Error Text On page 186, in the second paragraph after the Note box, Change: "[...] produces the following: "error CS0573: 'SomeType.x': [...]" To: "[...] produces the following: "error CS0573: 'SomeValType.x': [...]" |
Microsoft Press | May 06, 2010 | |
Printed | Page 199 |
2.5 Should Be 2.5F On page 199, in the code example, change: Rational r2 = 2.5; // Implicit cast from Single to Rational To:Rational r2 = 2.5F; // Implicit cast from Single to Rational |
Microsoft Press | May 06, 2010 | |
Printed | Page 204 |
Void Should Be Static Void On page 204, in the first code example, there are two lines beginning with the word "void" that need to be changed. Change:void StartProcessingFiles(out FileStream fs) { To:static void StartProcessingFiles(out FileStream fs) { Change:void ContinueProcessingFiles(ref FileStream fs) { To:static void ContinueProcessingFiles(ref FileStream fs) { |
Microsoft Press | May 06, 2010 | |
Printed | Page 206 |
Void Should Be Static Void On page 206, in the code sample, change:void GetAnObject(out Object o) { To:static void GetAnObject(out Object o) { |
Microsoft Press | May 06, 2010 | |
Printed | Page 219 |
Delete Closing Brace The code sample on page 219 contains one closing brace too many. The code sample should read as follows: public void set_Age(Int32 value) { If (value < 0) // The 'value always identifies the new value. throw new ArgumentOutOfRangeExceptional( "Age must be greater than or equal to 0"); _Age = value; } } |
Microsoft Press | May 06, 2010 | |
Printed | Page 220 |
Correction To Code Listing On page 220, in the second section of the code listing, there is missing text. Change: if (numBits <= 0) throw new ArgumentOutOfRangeException("numBits must be > 0"); To: if (numBits <= 0) throw new ArgumentOutOfRangeException("numBits", "numBits must be > 0"); |
Microsoft Press | May 06, 2010 | |
Printed | Page 222 |
Missing Word On page 222, the word "method" is missing in the first two bulleted items. In the first bullet, change: "...define a get accessor for the property." To: "...define a get accessor method for the property." In the second bullet, change: "...define a set accessor for the property." To: "...define a set accessor method for the property." |
Microsoft Press | May 06, 2010 | |
Printed | Page 230 |
Final Paragraph Should Be Part Of Note Box On page 230, the final paragraph, beginning "As you can see, this type is nothing to write home about.", should be part of the Note box immediately above it. |
Microsoft Press | May 06, 2010 | |
Printed | Page 232 |
Missing "virtual" On page 232, the word "virtual" is missing from the third section of the code listing. Change: // 3. A PUBLIC remove_* method // Allows objects to unregister interest in the event. [MethodImplAttribute(MethodImplOptions.Synchronized) ] public void remove_MailMsg(MailMsgEventHandler handler) { To: // 3. A PUBLIC remove_* method // Allows objects to unregister interest in the event. [MethodImplAttribute(MethodImplOptions.Synchronized) ] public virtual void remove_MailMsg(MailMsgEventHandler handler) { |
Microsoft Press | May 06, 2010 | |
Printed | Page 236 |
Brace Should Be Parenthesis On page 236, change the code example near the top of the page from: mm.remove_MailMsg(callback] ; To: mm.remove_MailMsg(callback) ; |
Microsoft Press | May 06, 2010 | |
Printed | Page 273 |
Correction To Table 12-4 On page 273, in table 12-4, the entry for Member Type for Member Length is incorrect. Change: "Read only property" To: "Read/write property" |
Microsoft Press | May 06, 2010 | |
Printed | Page 283-284 |
Replace Code Listing On page 283, replace the code listing beginning at the bottom third of the page (first line: "public StringBuilder AppendFormat(IFormatProvide formatProvider") and continuing on to page 284, with the following: public StringBuilder AppendFormat(IFormatProvider formatProvider, String format, params Object[] args) { // If an IFormatProvider was passed, find out // whether it offers an ICustomFormatter object. ICustomFormatter cf = null; if (formatProvider != null) cf = (ICustomFormatter) formatProvider.GetFormat(typeof(ICustomFormatter)); // Keep appending literal characters (not shown in this pseudocode) // and replaceable parameters to the StringBuilder's character array. while (MoreReplaceableArgumentsToAppend) { // argFormat refers to the replaceable format string obtained // from the format parameter String argFormat = ...; // argObj refers to the corresponding element // from the args array parameter Object argObj = ...; // argStr will refer to the formatted string to be appended // to the final, resulting string String argStr = null; // If a custom formatter is available, let it format the argument. if (cf != null) argStr = cf.Format(argFormat, argObj, formatProvider); // If there is no custom formatter or if it didn't format // the argument, try something else. if (argStr == null) { // Does the argument's type support rich formatting? IFormattable formattable = argObj as IFormattable; if (formattable != null) { // Yes; pass the format string and provider to // the type's IFormattable ToString method. argStr = formattable.ToString(argFormat, formatProvider); } else { // No; get the general format using // the thread's culture information. if (argObj != null) argStr = argObj.ToString(); else argStr = String.Empty; } } // Append argStr's characters to the character array field member. ... } return this; } |
Microsoft Press | May 06, 2010 | |
Printed | Page 302 |
Error In Code Sample There is an error in the code sample at the top of page 302.Change:"Console.WriteLine(c.ToString("X")); // "2" (heX format)"To:"Console.WriteLine(c.ToString("X")); // "00000002" (heX format)" |
Microsoft Press | May 06, 2010 | |
Printed | Page 303 |
Correction To Code Listing On page 303, in the code listing, second line from the top, change: "Console.WriteLine("{0,5:D} {1:G}",c, c); " To: "Console.WriteLine("{0,5:D} {0:G}",c); " |
Microsoft Press | May 06, 2010 | |
Printed | Page 326 |
Error In Code Sample There is an error in the code sample at the bottom of page 326.Change:" Int32 CompareTo(Object object);"To:" Int32 CompareTo(Object obj);" |
Microsoft Press | May 06, 2010 | |
Printed | Page 334 |
Second Should Be Fourth There is an error near the end of the second paragraph on page 334.Change:"When WriteLine is called the second time,"To:"When WriteLine is called the fourth time," |
Microsoft Press | May 06, 2010 | |
Printed | Page 339 |
private Should Be protected On page 339, in the code listing, change: "// NOTE: No public/private used on the next line " To: "// NOTE: No public/protected used on the next line " |
Microsoft Press | May 06, 2010 | |
Printed | Page 341 |
Error In Sample Code There is an error in the code sample in the middle of page 341.Change:"n = ((IComparable) v1).CompareTo(v2)); // Boxes v1 and v2"To:"n = ((IComparable) v1).CompareTo(v2); // Boxes v1 and v2" |
Microsoft Press | May 06, 2010 | |
Printed | Page 348 |
Error In Text There is an error in the text of the first paragraph on page 348.Change:"System.Runtime.InteropService namespace"To:"System.Runtime.InteropServices namespace" |
Microsoft Press | May 06, 2010 | |
Printed | Page 361 |
Error In Code Sample There is an error in the code sample at the top of page 361.Change:"// Override GetHashCode because Equals is overloaded."To:"// Override GetHashCode because Equals is overridden." |
Microsoft Press | May 06, 2010 | |
Printed | Page 374 |
Correction To Code Listing On page 374, in the first code listing (first line: "public void ProcessItems(Feedback feedback) { "), change: " feedback(items[item], item, items.length); " To: " feedback(items[item], item + 1, items.length); " |
Microsoft Press | May 06, 2010 | |
Printed | Page 374 |
Correction To Code Sample On page 374, in the second code snip after the second paragraph, middle of the page, change: " feedback.Invoke(items[item], item, items.length); " To: " feedback.Invoke(items[item], item + 1, items.length); " |
Microsoft Press | May 06, 2010 | |
Printed | Page 378 |
Errors In Code Sample There are two errors in the code sample at the bottom of page 378.Change:"fbArray[2] = new Feedback(appobj.FeedbackToStream);Feedback fbChain = Delegate.Combine(fbArray);"To:"fbArray[2] = new Feedback(appobj.FeedbackToFile);Feedback fbChain = (Feedback) Delegate.Combine(fbArray);" |
Microsoft Press | May 06, 2010 | |
Printed | Page 383 |
FeedbackToStream Should Be FeedbackToFile There are four instances of FeedbackToStream in the code sample on page 383. All of these instances of FeedbackToStream should be changed to FeedbackToFile. |
Microsoft Press | May 06, 2010 | |
Printed | Page 459 |
Error In Code Sample There are two error in the code sample at the top of page 459.Change:"Console.WriteLine(a.Length);"// After a.Length returns, a isn't refered to in the code and is no"To:"Console.WriteLine(a.Count);" // After a.Count returns, a isn't refered to in the code and is no" |
Microsoft Press | May 06, 2010 | |
Printed | Page 473 |
"wouldn't" Should Be "would" In the code listing on page 473, line 31, change: "// If this class weren't sealed, this method wouldn't be protected." To: "// If this class weren't sealed, this method would be protected." |
Microsoft Press | May 06, 2010 | |
Printed | Page 491 |
Error In Code Sample There is an error in the code sample in the middle of page 491.Change:"// This static ArrayList contains references"To:"// This static Stack contains references" |
Microsoft Press | May 06, 2010 | |
Printed | Page 496 & 497 |
"J" Should Be "K" In figures 19-12 and 19-13, on pages 496 and 497, the letter "J" found in the box should be changed to a "K". |
Microsoft Press | May 06, 2010 | |
Printed | Page 523 |
Delete "second version" On page 523, in the first sentence of the section "Reflecting Over a Type's Members: Binding", change: "In the second version of the Reflector application, [...]" To: "In the Reflector application, [...]" |
Microsoft Press | May 06, 2010 | |
Printed | Page 537 |
RunTime Should Be RuntimeType There is an error in the text at the top of page 537.Change:"the IL code just saves the RuntimeTime reference..."To:"the IL code just saves the RuntimeType reference..." |
Microsoft Press | May 06, 2010 | |
Printed | Page 547 |
Incorrect Text In Important Box There is an error in the last paragraph of the Important box on page 547.Change:"invoke a member, the member performs the same kind"To:"invoke a member, the method performs the same kind" |
Microsoft Press | May 06, 2010 | |
Printed | Page 553 |
Incorrect Text There is an incorrect reference to Type in the last paragraph of page 553.Change:"about the interface's member as defined by the Type."To:"about the interface's member as defined by the TargetType." Microsoft Press is committed to providing informative and accurate books. All comments and corrections listed above are ready for inclusion in future printings of this book. If you have a later printing of this book, it may already contain most or all of the above corrections. |
Microsoft Press | May 06, 2010 |