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 ix Table of Contents (Summary), chapter 8 |
"enums" s/b "Enums" |
Anonymous | Jan 01, 2008 | |
Printed | Page ix Table of Contents (Summary), chapter 11 |
"events" s/b "Events" |
Anonymous | Jan 01, 2008 | |
Printed | Page ix Table of Contents (Summary) |
TOC summary ends with Lab 3. |
Anonymous | Jan 01, 2008 | |
Printed | Page x Table of Contents, entry for page 5 |
"startbuilding" s/b "start building" |
Anonymous | Jan 01, 2008 | |
Printed | Page xv 1st paragraph, last sentence. |
"You'll make your object's data private, add methods to protect how that data is accessed." |
Anonymous | Jan 01, 2008 | |
Printed | Page xxii, 483 1st paragraph, 5th line. |
"subscibe" s/b "subscribe" |
Anonymous | Jan 01, 2008 | |
Printed | Page xxviii fifth TOC item |
This should be "#5 Windows Presentation Framework" -- it's missing the # at the beginning. |
Anonymous | Jan 01, 2008 | |
Printed | Page xxxvi "Setting up Visual Studio 2008 Express Edition", 3rd bullet point, 2nd line |
Missing period. |
Anonymous | Jan 01, 2008 | |
Printed | Page xxxvi Screenshot |
Screenshot on page replaced in reprint with an image that shows how the installer looks now that the final version of Visual Studio Express is out ( vs08setup.png). Even though the picture looks different all of the text stays the same. |
Anonymous | Jan 01, 2008 | |
Printed | Page xxxviii 2nd line from the bottom of the page |
"execises" s/b "exercises" |
Anonymous | Jan 01, 2008 | |
Printed | Page xxviiii Header and first line of body text |
In the header and first line of body text change "Windows Presentation Framework" to "Windows Presentation Foundation". |
Anonymous | Sep 01, 2008 | |
Printed | Page 1 |
Here are two interfaces. IClown defines a clown who honks his horn and has a funny thing. IScaryClown inherits from clown. A scary clown does everything a clown does, plus he has a scary thing and scares little children. |
Anonymous | Jan 01, 2008 | |
Printed | Page 2 |
The FunnyFunny class implements the IClown interface. We made the funnyThingIHave field protected so that it can be accessed by any instance of a subclass of FunnyFunny. |
Anonymous | Jan 01, 2008 | |
Printed | Page 3 |
The ScaryScary class implements the IScaryClown interface. It also inherits from FunnyFunny, and since FunnyFunny implements IClown, that means ScaryScary does too. Take a look at how the ScareLittleChildren() method accesses the funnyThingIHave backing f |
Anonymous | Jan 01, 2008 | |
Printed | Page 4 |
Here's a button that instantiates FunnyFunny and ScaryScary. Take a look at how it uses as to downcast someFunnyClown to an IScaryClown reference. |
Anonymous | Jan 01, 2008 | |
Printed | Page 9 - top left annotation ("The toolbar has buttons...") |
This is supposed to be a filled-in answer. There should be dotted-line blanks under it. |
Anonymous | Jan 01, 2008 | |
Printed | Page 10 |
remove the top right annotation "We've blown up..." |
Anonymous | Jan 01, 2008 | |
Printed | Page 11 first question, last two lines |
Change "writes the action code, or the code that does the work" to "writes the code that actually does the work" |
Anonymous | Jan 01, 2008 | |
Printed | Page 11 fifth question and answer |
This entire question and answer should be changed. Here's the new Q and A: |
Anonymous | Jan 01, 2008 | |
Printed | Page 13 middle |
1. It is Not the Size property but the "Size Mode" property that we change to "Zoom" Note from the Author or Editor: |
Anonymous | Oct 05, 2008 | |
Printed | Page 13 step #2 |
Add an annotation pointing to the paragraph for #2 that says: |
Anonymous | Jan 01, 2008 | |
Printed | Page 13 In the text under step #3, change this text: "Click Import, find your logo, and you're all set:" |
to this: |
Anonymous | Jan 01, 2008 | |
Printed | Page 14 Change the text in the middle annotation from this |
If you click on Form1.resx in the Solution Explorer, you can see the logo that you imported. |
Anonymous | Jan 01, 2008 | |
Printed | Page 18 Insert a new #2 bullet between the picture and the current #2 bullet that says |
Click on the Add button in the Add New Item window. |
Anonymous | Jan 01, 2008 | |
Printed | Page 19 Bottom-Left paragraph |
"queries that you are stored" should be "queries that are stored" |
Anonymous | Jan 01, 2008 | |
Printed | Page 21 |
Add an annotation that points to the IsIdentity line in the screenshot on this page that says "You'll need to click on the right column and select Yes from the drop down next to IsIdentity to designate ContactID as your record Identifier." |
Anonymous | Jan 01, 2008 | |
Printed | Page 22 First paragraph |
Instead of saying "you're going to track", the book says "your going to track" |
Anonymous | Jan 01, 2008 | |
Printed | Page 22 Laverne Smith's email address is missing a period. It should be |
laverne.smith@xyzindustries.com |
Anonymous | Jan 01, 2008 | |
Printed | Page 25 1st paragraph |
"the other five columns" should read "the other six columns" Note from the Author or Editor: |
Jeff Hickman | Feb 04, 2010 | |
Printed | Page 26 top left corner |
Add a note in the blank space in the top-left corner of the page: |
Anonymous | Jan 01, 2008 | |
Printed | Page 26 Screenshot below step 2 |
Title bar of dialog should say "Microsoft Visual C# 2008 Express Edition" (not "...2005 Express Edition"). Image is otherwise fine as is. |
Anonymous | Jan 01, 2008 | |
Printed | Page 26 Change the headline from ?Diagram your data so your application to access it? to ?Diagram your data |
And replace the top paragraph of body text with: |
Anonymous | Sep 01, 2008 | |
Printed | Page 27 In the sidebar, change the second sentence from this |
?The IDE then uses the database diagram to auto generate code to work with your database.? |
Anonymous | Sep 01, 2008 | |
Printed | Page 29 Add an annotation pointing to one of the cards |
Objectville Paper Company is in the United States, so the CEO writes dates so that 05/26/07 means May 26, 2007. If your machine is set to a different location, you may need to enter dates differently -- you might need to use 26/05/07 instead. |
Anonymous | Jan 01, 2008 | |
Printed | Page 29 Top Left Card |
Phone number[(212)555-81125] has too many numbers in it. It should be (212)555-8125. |
Anonymous | Jan 01, 2008 | |
Printed | Page 29 Top Left Card and Middle Card |
Both emails are missing the "." between xyzindustries and com |
Anonymous | Jan 01, 2008 | |
Printed | Page 31 |
In diagram, the file extension ".xsd" is missing from the end of the XML file, which should be labeled ContactDBDataSet.xsd. |
Anonymous | Jan 01, 2008 | |
Printed | Page 32 step 2, change the last sentence ("If you don't see the columns...") to this |
Click the plus sign next to the People table to expand it -- you'll see the columns that you added to your table. When you click on the People table in the Data Sources window and drag it onto your form, the IDE automatically adds data controls to your form that the user can use to browse and enter data. By default it adds a DataGridView, which lets the user work with the data using one big spreadsheet-like control. Click the arrow next to the People table and select Details -- that tells the IDE to add individual controls to your form for each column in the table. |
Anonymous | Jan 01, 2008 | |
Printed | Page 32 an annotation that says: "This is the little arrow you should click on." |
Change it to say this: "Click this arrow and choose 'Details' to tell the IDE to add individual controls to your form rather than one large spreadsheet-like data control." |
Anonymous | Jan 01, 2008 | |
Printed | Page 32 |
In the bottom annotation, change "fields" to "columns". |
Anonymous | Jan 01, 2008 | |
Printed | Page 36 Add a "Watch It!" to this page |
Every time you build your program, the IDE puts a fresh copy of the database in the bin folder. This will overwrite any data you added when you ran the program. When you debug your program, the IDE rebuilds it if the code has changed -- which means that your database will sometimes get overwritten when you run your program in the IDE. If you run the program directly from the bin/debug or bin/release folder, or if use the installer to install it on your machine, then you won't see this problem. |
Anonymous | Jan 01, 2008 | |
Printed | Page 39 bottom right-hand annotation |
Add this sentence to the annotation: "They're part of ContactDB.mdf database file, which gets installed along with your program." |
Anonymous | Jan 01, 2008 | |
Printed | Page 44 |
Remove the word "just" from the bottom annotation ("The Properties window in the IDE is a really easy way"). |
Anonymous | Sep 01, 2008 | |
Printed | Page 45 In the code at the very bottom of the page, change |
this.Text = "Contacts"; |
Anonymous | Jan 01, 2008 | |
Printed | Page 49 top annotation, fourth line |
change "select it" to "tell the IDE to fill it in for you" |
Anonymous | Jan 01, 2008 | |
Printed | Page 51 bottom annotation, sixth line |
Change: the designer tab |
Anonymous | Jan 01, 2008 | |
Printed | Page 52 third annotation |
The underline isn't lined up with the words "inside a class" |
Anonymous | Jan 01, 2008 | |
Printed | Page 52 bottom annotation |
Add another annotation underneath this one pointing up at it that says: "You'll see slightly different using lines if you're using Visual Studio 2005" |
Anonymous | Jan 01, 2008 | |
Printed | Page 55 ? sidebar (?Every C# program must have??) |
Add an annotation pointing down at this sidebar that says: ?Technically, a program can have more than one Main() method, and you can tell C# which one is the entry point? but you won?t need to do that now.? |
Anonymous | Sep 01, 2008 | |
Printed | Page 56 Top paragraph, second sentence |
Change "Let's remove the Main method" to "Open up the program you wrote in Chapter 1 and remove the Main method" |
Anonymous | Jan 01, 2008 | |
Printed | Page 57 First paragraph, second line |
Change "messagebox" to "MessageBox" |
Anonymous | Jan 01, 2008 | |
Printed | Page 63 Dictionary definition |
Put a period after "adapted" and capitalize "The" in "The drill's" |
Anonymous | Jan 01, 2008 | |
Printed | Page 65 Change the loop in the middle of the page to |
for (int i = 0; i < 8; i = i + 2) |
Anonymous | Jan 01, 2008 | |
Printed | Page 69 code at top of page should be |
if ((someValue == 3) && (name.Equals("Joe"))) |
Anonymous | Jan 01, 2008 | |
Printed | Page 69 annotation that starts "The second part" |
Add a sentence to the end of the annotation: The test is run before the code block, and the block is executed only if the test is true. |
Anonymous | Jan 01, 2008 | |
Printed | Page 69 annotation that starts with "This is where the loop" |
Add a sentence to the end of the annotation: This is called the iterator, and it's run immediately after all of the statements in the code block. |
Anonymous | Jan 01, 2008 | |
Printed | Page 69 top annotation |
This line checks someValue to see if it's less than 3 ......... |
Anonymous | Sep 01, 2008 | |
Printed | Page 71 Annotation for Loop #5 |
The annotation "Hint: q starts out equal to zero" is wrong as q starts out equal to 2 as initialized by the header of the for loop. Note from the Author or Editor: |
Anonymous | Aug 12, 2008 | |
Printed | Page 71 lower left-hand corner |
Add an annotation pointing up at the Sharpen that says: "Remember, a for loop always runs the conditional test at the beginning of the block, and the iterator at the end of the block" |
Anonymous | Jan 01, 2008 | |
Printed | Page 73 |
Change this: ?Yes, there are a few namespaces you?re not allowed to use.? |
Anonymous | Sep 01, 2008 | |
Printed | Page 73 |
Change this: and System.Math, which has mathematical functions. |
Anonymous | Sep 01, 2008 | |
Printed | Page 76 in step #2, change this text: "from 0 to 254" |
to this: "from 0 to 253" |
Anonymous | Jan 01, 2008 | |
Printed | Page 76 |
Change the second annotation to: ?This line tells the program to stop your loop momentarily and do the other things it needs to do, like refresh the form, check for mouse clicks, etc. Try taking out this line and seeing what happens. The form doesn?t redraw itself, because it?s waiting until the loop is done before it deals with those events.? |
Anonymous | Sep 01, 2008 | |
Printed | Page 79 add an annotation pointing to the second for line in the code |
We used "&& Visible" instead of "&& Visible == true". It's just like saying "if it's visible" instead of "if it's true that it's visible" -- they mean the same thing. |
Anonymous | Jan 01, 2008 | |
Printed | Page 79 bottom paragraph, third line, boldfaced courier text |
Change "&& Visible == true" to "&& Visible" |
Anonymous | Jan 01, 2008 | |
82 Code Magnets solution |
The solution for Code Magnets given is not the only solution. Try: Note from the Author or Editor: |
Anonymous | Oct 20, 2008 | ||
89 Step 3 |
The book gives "1en" in the code on page 89. That did not work. My youngest son pointed out that "You can't prefix variables with numbers." The correction is to change "1en" to "en1". Then the program worked properly. Note from the Author or Editor: |
Jerome Smith | Jan 12, 2009 | ||
Printed | Page 89 Step 2 Paragrapgh 2 (right after the code), line 3 |
The line says "When it's called, it pops up a MessageBox with the message repated..." repated is not repeated - grammatical error. |
Anonymous | Dec 05, 2008 | Sep 01, 2008 |
Printed | Page 89 second paragraph under step 2, second sentence |
"repated" should be "repeated" |
Anonymous | Sep 01, 2008 | |
Printed | Page 89 |
"... a number of its numberOfTimes parameter." change to: |
Anonymous | Sep 01, 2008 | |
Printed | Page 93 Under "Check it out for yourself!" |
"Open any project that uses a button called button1, and use the IDE to |
Anonymous | Jan 01, 2008 | |
Printed | Page 93 last paragraph |
In the text: |
Anonymous | Sep 01, 2008 | |
Printed | Page 94-96 |
semicolon missing after "Navigator navigator1 = new Navigator()" in the second line of code under step 2 on page 94, fourth line of code on page 95, fourth line of code on page 96 |
Anonymous | Jan 01, 2008 | |
Printed | Page 97 Third paragraph, third line |
Change "Talker()" to "Talker" -- remove the parentheses |
Anonymous | Jan 01, 2008 | |
Printed | Page 98 top annotation |
Change "is a special kind of field" to "is very similar to a field" |
Anonymous | Jan 01, 2008 | |
Printed | Page 102 top left annotation, fifth line |
Change "T()" to "T" -- remove the parentheses |
Anonymous | Jan 01, 2008 | |
Printed | Page 102 code example for bulleted point #1 |
The current example says: Note from the Author or Editor: |
Anonymous | Jun 25, 2008 | Sep 01, 2008 |
Printed | Page 102 code example for bulleted point #1 |
The current example says: |
Anonymous | Sep 01, 2008 | |
Printed | Page 105 Annotation for the third class |
Fill in its name and method. Note from the Author or Editor: |
Anonymous | Feb 11, 2010 | |
Printed | Page 108 Class diagram in the upper right-hand corner |
"ClassMaker" should be changed to "CandyMaker" -- it's currently the wrong solution to the problem. |
Anonymous | Jan 01, 2008 | |
Printed | Page 110 text for Step 3 |
first off, this errata submission form needs a field for the printing revision (and a hint telling users how to find it). Mine was the [9/08] version. This is the latest version as far as I know. Note from the Author or Editor: |
clyde underwood | Apr 19, 2009 | |
Printed | Page 110 |
top annotation, third line: change "lives" to "live" |
Anonymous | Jan 01, 2008 | |
Printed | Page 110 last line |
The two methods used in the Guy class are : |
Anonymous | Sep 01, 2008 | |
Printed | Page 112 step 1 |
In the title line, change "six labels" to "three labels" |
Anonymous | Jan 01, 2008 | |
Printed | Page 114 first question, first, fourth and eighth lines: |
change "bob variable" to "bob field" |
Anonymous | Jan 01, 2008 | |
Printed | Page 116 2nd paragraph |
A program to help a zoo keeper track her animals'feeding schedules might have classes for different kinds of food and types of animals. Note from the Author or Editor: |
Anonymous | Feb 12, 2010 | |
Printed | Page 117 Top left bold text |
"Object intializers save you time and..." s/b "intializers". Note from the Author or Editor: |
Anonymous | Nov 29, 2011 | |
Printed | Page 124 |
In the first line of body text, change boldfaced text ?value types? to ?types?. |
Anonymous | Sep 01, 2008 | |
Printed | Page 124 |
In the second bulleted list, second bullet, change this: ?-127 to 128? |
Anonymous | Sep 01, 2008 | |
Printed | Page 124 |
In the second bulleted list, second bullet, change this: ?-32767 to 32768? |
Anonymous | Sep 01, 2008 | |
Printed | Page 125 add an annotation pointing to the "decimal" bullet at the top of the page |
When your program needs to deal with currency, you usually want to use a decimal to store the number. |
Anonymous | Jan 01, 2008 | |
Printed | Page 125 third section, first three sentences that start "Did you notice how the byte type..." |
This is inaccurate, and we need to replace the first three sentences with: |
Anonymous | Jan 01, 2008 | |
Printed | Page 125 |
In the third boldfaced heading, change ?built-in value types? to ?built-in types? |
Anonymous | Sep 01, 2008 | |
Printed | Page 126 |
* Change this: ?scientific application where the numbers need to be extremely accurate, the decimal type has the most precision.? |
Anonymous | Sep 01, 2008 | |
Printed | Page 129 |
* In the thought bubble, change ?casting this whole time?? to ?converting types all along?? |
Anonymous | Sep 01, 2008 | |
Printed | Page 130 |
In the bottom paragraph, change this: ?(an argument is another name for a method?s parameter)? |
Anonymous | Sep 01, 2008 | |
Printed | Page 130 |
Change ?and converted the result to a double.? to ?and the = operator converted the result to a double.? |
Anonymous | Sep 01, 2008 | |
Printed | Page 131 Last [normal] paragraph |
"Now try passing it a boolean, but assigning the return value to a long" should change to: "Now try passing it a boolean but assigning the return value to a string." |
Anonymous | Jan 01, 2008 | |
Printed | Page 131 |
Add this to the end of the first paragraph: ?(Sometimes C# can do the conversion automatically ? like if your method expects an int, but you pass it a short ? but it can?t do that for ints and strings.)? |
Anonymous | Sep 01, 2008 | |
Printed | Page 132 |
* In the instructions, change ?know them all? to ?know a lot of them? [p161, too] |
Anonymous | Sep 01, 2008 | |
Printed | Page 133 and 134 |
instructions - replace "odometer" with "mileage reading from the car's odometer" |
Anonymous | Jan 01, 2008 | |
Printed | Page 137 headline |
Change "Objects are variables, too" to "Objects use variables, too" |
Anonymous | Jan 01, 2008 | |
Printed | Page 139 Diagram's arrow text, bottom right |
"Every one of these labels is reference variable, but ...?? |
Anonymous | Sep 01, 2008 | |
Printed | Page 140 Cooemt beginning "The first line had ...", just above paragraph 2 |
This is from the 4/08 printing. In 1 Here's some code that creates an object. Note from the Author or Editor: |
Anonymous | Jun 30, 2008 | Sep 01, 2008 |
Printed | Page 140 Cooemt beginning "The first line had ...", just above paragraph 2 |
This is from the 4/08 printing. In 1 Here's some code that creates an object. |
Anonymous | Sep 01, 2008 | |
Printed | Page 141 Crossword puzzle, 3 Down |
There is no mention of camel case prior to page 141. The index shows camel case first being introduced on page 201. |
Anonymous | Jan 01, 2008 | |
Printed | Page 145 |
Change the last annotation to: "The WhoAmI() method should pop up this message box. Make sure the message includes the ear size and the title bar includes the name." |
Anonymous | Jan 01, 2008 | |
Printed | Page 145 and 146 instructions |
Change "Make two elephant instances and then have them switch properties" to "Make to elephant instances and then swap the reference variables that point to them" |
Anonymous | Jan 01, 2008 | |
Printed | Page 146 Add this annotation |
strings and arrays are different from all of the other data types you?ve seen because they?re the only ones without a set size (think about that for a bit). |
Anonymous | Sep 01, 2008 | |
Printed | Page 147 Step 2 |
lloyd = Lucinda; |
Anonymous | Jan 01, 2008 | |
Printed | Page 149 tool tip box, third line |
Change "field" to "property" |
Anonymous | Jan 01, 2008 | |
Printed | Page 149 An array's length box |
last line change "nubmered" to "numbered" |
Anonymous | Sep 01, 2008 | |
Printed | Page 150 Item 2 , 1st line |
Currently: "Add a GetMenItem()..." |
Anonymous | May 19, 2008 | Sep 01, 2008 |
Printed | Page 151 Step 3 "Build your form" first sentence |
It reads "label1 through lablel6" and it should be "label1 through label6" |
Anonymous | Sep 01, 2008 | |
Printed | Page 152 step 1, second and third sentences |
Change "method" to "parameter" |
Anonymous | Jan 01, 2008 | |
Printed | Page 153 Dumb Questions, middle column, last line of answer |
Currently: "... reference ot it somewhere." Note from the Author or Editor: |
Anonymous | May 19, 2008 | Sep 01, 2008 |
153 There are No Dumb Questions |
The Line: Note from the Author or Editor: |
Anonymous | Jul 18, 2008 | Sep 01, 2008 | |
Printed | Page 153 There are No Dumb Questions |
The Line: Look inside the InitializeComponent() method - You'll find "new Form1(); |
Anonymous | Sep 01, 2008 | |
Printed | Page 153 Dumb Questions, middle column, last line of answer |
Currently: "... reference ot it somewhere." |
Anonymous | Sep 01, 2008 | |
Printed | Page 154 first answer, sixth line |
Change "(non-static) a" to "a (non-static)" |
Anonymous | Jan 01, 2008 | |
Printed | Page 154 bullet points, right-hand column, third bullet |
Add a colon after "labels" -- "References are like labels:" |
Anonymous | Jan 01, 2008 | |
Printed | Page 154 |
* In the first bullet, change 256 to 255. |
Anonymous | Sep 01, 2008 | |
Printed | Page 154 |
In the last answer, sixth line, change "with an class" to "with a class" |
Anonymous | Sep 01, 2008 | |
Printed | Page 166 class diagram and code for Greyhound |
Change "MyRandom" to "Randomizer" in two places -- it's in the class diagram and in the sixth line of the code next to it |
Anonymous | Jan 01, 2008 | |
Printed | Page 167 code at the top of the page |
add an annotation pointing to "public Label MyLabel; // My Label" that reads: |
Anonymous | Sep 01, 2008 | |
Printed | Page 169 Top, Center |
The suggested code for MyBet cannot be used because it requires knowledge of constructors, which |
Anonymous | Sep 01, 2008 | |
Printed | Page 170 |
Add an annotation pointing to the screenshot that says: Make sure you set each PictureBox's SizeMode property to Zoom |
Anonymous | Jan 01, 2008 | |
Printed | Page 176 class diagram |
Remove "HealthyOption" from the class diagram |
Anonymous | Jan 01, 2008 | |
Printed | Page 178 Excercise solution |
Note from the Author or Editor: |
Anonymous | Sep 30, 2008 | |
Printed | Page 183 top - "The Problem Up Close" |
the "Close" is cut off |
Anonymous | Jan 01, 2008 | |
Printed | Page 189 Point 3 |
Change 94 to 54 (to match page 190) Note from the Author or Editor: |
Jeff Hickman | Apr 13, 2010 | |
Printed | Page 190 Last annotation (bottom right) |
Change "loyalCustomerAmount" to loyalCustomerOrderAmount to match the code on p189 & p190 Note from the Author or Editor: |
Jeff Hickman | Apr 13, 2010 | |
Printed | Page 190 change this line of code |
return cookieRecipe + " " + secretIngredient; |
Anonymous | Jan 01, 2008 | |
Printed | Page 190 - in # 3. int loyalCustomerAmount = 94 |
change 94 to 54 |
Anonymous | Jan 01, 2008 | |
Printed | Page 190 in #5. mySuperChef.cookieRecipe = "get 3 eggs..." |
Make the "g" uppercase -- "Get 3 eggs..." |
Anonymous | Jan 01, 2008 | |
Printed | Page 190 - add an annotation at the bottom of the page pointing to the answer to #7 |
Even though you created a local variable called loyalCustomerAmount and set it to 54, that didn't change the object's loyalCustomerAmount value, which is still 60 -- so it won't print the secret ingredient. |
Anonymous | Jan 01, 2008 | |
Printed | Page 190 first item circled |
The instructions ask the reader to circle items that won't compile. The following line has "const" |
Anonymous | Sep 01, 2008 | |
Printed | Page 193 3rd annotation errata |
3rd annotation, last line. Note from the Author or Editor: |
Anonymous | Nov 01, 2008 | |
Printed | Page 193 last annotation |
page 193, last annotation, last sentence states "And when it queries the BagsOfFeed field it runs the get accessor, which returns 300." Is this referring to an unmentioned BagsOfFeed property? Also, we just changed NumberOfCows to 20, which sets numberOfCows to 20. According to the bottom of page 192, BagsOfFeed = numberOfCows * FeedMultiplier, and FeedMultiplier is a constant equal to 30. Therefore, BagsOfFeed should be 600. I would change the last sentence to "The set accessor causes a recalculation of BagsOfFeed so that myFarmer.BagsOfFeed now equals 600." Note from the Author or Editor: |
Anonymous | Nov 01, 2008 | |
Printed | Page 193 - bottom block of code |
Add this line of code above "public int GetNumberOfCows()": |
Anonymous | Jan 01, 2008 | |
Printed | Page 193 |
In the body text, change this: ?every time a field is called? |
Anonymous | Sep 01, 2008 | |
Printed | Page 193 |
In the second annotation, change ?You use properties? to ?You?ll often use properties? |
Anonymous | Sep 01, 2008 | |
Printed | Page 194 - top left annotation |
Change the first few words from this: Name this button Calculate |
Anonymous | Sep 01, 2008 | |
Printed | Page 195 change |
"Add a button the form that executes this statement." |
Anonymous | Jan 01, 2008 | |
Printed | Page 195 last line of body text on the bottom of the page |
Add this right before the last sentence that starts "Now your Farmer |
Anonymous | Sep 01, 2008 | |
Printed | Page 196 step #1 |
Add an annotation pointing to the second line of code ("public int FeedMultiplier"): |
Anonymous | Jan 01, 2008 | |
Printed | Page 196 |
* body text at the top of the page |
Anonymous | Sep 01, 2008 | |
Printed | Page 196 1st paragraph, line 3 |
In line 3 of the body text, change ?You?ve seen how you poor? to ?You?ve seen how poor? |
Anonymous | Sep 01, 2008 | |
Printed | Page 197-198 Here's a list of the things that need to change on pages 197 and 198 |
--- |
Anonymous | Jan 01, 2008 | |
Printed | Page 197 |
* Remove the first line of code ("private int feedMultiplier;") and the |
Anonymous | Sep 01, 2008 | |
Printed | Page 198 |
* code in "Constructors Way Up Close" box |
Anonymous | Sep 01, 2008 | |
Printed | Page 199 second answer |
change "one that's declare inside a field and called..." to "one that looks ljust like a field to other objects, and called..." |
Anonymous | Jan 01, 2008 | |
Printed | Page 199 fourth answer, second paragraph |
Remove the sentence "C# was designed to save you from writing redundant code." |
Anonymous | Jan 01, 2008 | |
Printed | Page 199 sixth answer |
Add a fourth line with just a closing bracket } to the first code block |
Anonymous | Jan 01, 2008 | |
Printed | Page 199 |
* In the third answer, fifth line, change ?when a field gets accessed? to ?when a property gets accessed? |
Anonymous | Sep 01, 2008 | |
Printed | Page 200 1st paragraph |
Note from the Author or Editor: |
Anonymous | Aug 08, 2008 | |
Printed | Page 200 - this Sharpen Your Pencil needs to be redone. |
Here's the new code for the class: |
Anonymous | Jan 01, 2008 | |
Printed | Page 201 - answer |
Remove the ) at the end of the second paragraph |
Anonymous | Jan 01, 2008 | |
Printed | Page 201 second paragraph of first Answer at top |
Add the following text to the beginning of the paragraph: |
Anonymous | Sep 01, 2008 | |
Printed | Page 202 The answers to the Sharpen Your Pencil on page 200 are |
question 1: 28 |
Anonymous | Jan 01, 2008 | |
Printed | Page 203 Step 1 in Exercise |
CalculateCostODecorations() is missing an "f" after the "O". It should be changed to "CalculateCostOfDecorations()". |
Anonymous | Jan 01, 2008 | |
Printed | Page 230 Pool puzzle solution Rowboat class |
This block of code is missing a colon; |
Anonymous | May 30, 2008 | Sep 01, 2008 |
Printed | Page 230 Pool puzzle solution Rowboat class |
This block of code is missing a colon; |
Anonymous | Sep 01, 2008 | |
Printed | Page 230 In the pool puzzle solution, in the first blank, change ?Boat? to ?: Boat |
Anonymous | Sep 01, 2008 | ||
Printed | Page 233 Middle annotation on the left |
Hi! This is Andrew (the author). We should make a minor change to clear up some confusion -- see this forum post: |
Anonymous | Oct 10, 2008 | Sep 01, 2008 |
Printed | Page 233 |
Change the first sentence of the body text from this: |
Anonymous | Sep 01, 2008 | |
Printed | Page 235 |
In step 2, second bullet, change ?subclasses only inherit? to ?subclasses can only see? |
Anonymous | Sep 01, 2008 | |
Printed | Page 236 Code, comment for CalculateCost() |
The comment still refers to the cost of beverages for the base CalculateCost() method. This comment probably belongs with |
Anonymous | Sep 01, 2008 | |
Printed | Page 239/240 number2/bullet)star 6 |
On page number 239, Number 2, second sentence, it says "Once the queen's done assinging". Should be assigning. |
Anonymous | Jun 11, 2008 | Sep 01, 2008 |
Printed | Page 239 number 2 |
On page number 239, Number 2, second sentence, it says "Once the queen's done assinging". Should be assigning. |
Anonymous | Sep 01, 2008 | |
Printed | Page 240 Text in grey block on the bottom of the page |
In the box where the head says "String.IsNullOrEmpty", the sentence goes a bit weird. "Since each bee stores its current job as a string, the way the worker knows whether or not he's not currently doing a job is to check if his CurrentJob property-". If his CurrentJob what? Note from the Author or Editor: |
Anonymous | Jun 11, 2008 | Sep 01, 2008 |
Printed | Page 240 Text in grey block on the bottom of the page |
In the box where the head says "String.IsNullOrEmpty", the sentence goes a bit weird. "Since each bee stores its current job as a string, the way the worker knows whether or not he's not currently doing a job is to check if his CurrentJob property-". If his CurrentJob what? |
Anonymous | Sep 01, 2008 | |
Printed | Page 245 In the "Bee" class diagram, change "pblic" to "public" |
Add an annotation pointing to the Bee class diagram: "Sometimes we'll show you return values and private members in class diagrams." |
Anonymous | Jan 01, 2008 | |
Printed | Page 245 "Add Existing Item" helper box |
The box titled "Add Existing Item" leaves out the step to choose "Add Existing Item" from the menu. It says: Note from the Author or Editor: |
Anonymous | May 23, 2008 | Sep 01, 2008 |
Printed | Page 245 |
* "Add Existing Item" helper box; |
Anonymous | Sep 01, 2008 | |
Printed | Page 254 middle of the page |
The error is in the illustration of the Queen object and two workers. The first worker object is labeled 'NectarCollan object' and the second one is labeled 'NectalCollar object'. Presumably both labels should say 'NectarCollector object'. |
Anonymous | Oct 14, 2008 | |
Printed | Page 254-256 |
Pages 254-256 have been substantially revised since the first printing to enhance clarity and quality of learning. You can download a PDF containing the revised pages at: http://www.headfirstlabs.com/books/hfcsharp/hfcsharp_ch07_excerpt.pdf |
Anonymous | Jan 01, 2008 | |
Printed | Page 255 |
Change this: ?So if you want your interface to require a field with a certain name and type, just use a property instead ? it?ll accomplish the same thing.? |
Anonymous | Sep 01, 2008 | |
Printed | Page 256 Add a No Dumb Questions to this page |
Q: I still don't quite get how interfaces improve the beehive code. You'll still need to add a NectarStinger class, and it'll still have duplicate code... right? |
Anonymous | Jan 01, 2008 | |
Printed | Page 259 step 7 |
Change "Update your button so that the object initializer sets the FunnyThingIHave property, and the button calls" |
Anonymous | Jan 01, 2008 | |
Printed | Page 259 small typo at top right of page. |
The second "accessor" is misspelled "accssor". |
Anonymous | Jan 01, 2008 | |
Printed | Page 263 |
The two code blocks should be in the same font -- reduce the font size for the top code block so it matches the bottom one. |
Anonymous | Jan 01, 2008 | |
Printed | Page 265 middle |
thisCollector = workers[i] as INectarCollecter; |
Anonymous | Sep 01, 2008 | |
Printed | Page 266 SYP solution |
#1 should be "0 and 6" |
Anonymous | Jan 01, 2008 | |
Printed | Page 271 3rd paragraph |
"the FunnyThingIHave set accessor should return" Note from the Author or Editor: |
Frederic Rabine | Apr 16, 2009 | |
Printed | Page 273 |
In the second bullet, change the second sentence to: |
Anonymous | Sep 01, 2008 | |
Printed | Page 273 |
Add the following sentence to the end of the fourth bullet: ?You can combine this with protected ? anything you mark protected internal can only be accessed from within the assembly or from a subclass. |
Anonymous | Sep 01, 2008 | |
Printed | Page 274-275 |
- Turn this into a 1-2-3 spread (like pages 258-259)? There will be a (1) above "public interface IClown {", a (2) above "public class FunnyFunny : IClown {", a (3) on page 275 above "public class ScaryScary : ...", and a (4) above "private void button1_C |
Anonymous | Jan 01, 2008 | |
Printed | Page 275 |
Add a closing bracket to the bottom of the code under step 3. It should line up with the ?p? in ?public? in the first line of code. |
Anonymous | Sep 01, 2008 | |
Printed | Page 276 second answer |
Add a sentence to the end of the answer, right after "store data by itself.": |
Anonymous | Jan 01, 2008 | |
Printed | Page 277 class diagram |
The arrows in the class diagram should be solid, not dotted. |
Anonymous | Jan 01, 2008 | |
Printed | Page 279 code at the bottom of the page |
in the code under button1_Click, change "MarsMission" to "Mars" |
Anonymous | Jan 01, 2008 | |
Printed | Page 280 headline |
Change the headline to: "Like we said, some classes should never be instantiated" |
Anonymous | Jan 01, 2008 | |
Printed | Page 281 1st paragraph |
The third and fourth sentences of the paragraph don't fit with the rest of the paragraph. These sentences say, "So let's implement it! Once we do, the error will go away." These sentences are repeated in what I think is their correct place about 3/4 of the way down the page, after a screen shot of an error message. |
Anonymous | Oct 15, 2008 | |
Printed | Page 281 change last sentence of body text to |
So let's implement it! Once we do, the error will go away. Any time you extend an abstract class, you need to make sure that you override all of its abstract methods. Luckily, the IDE makes this job easier. Just type "public override" -- as soon as you press space, the IDE will display a drop-down box with a list of any methods that you can override. Select the SetMissionInfo method and fill it in: |
Anonymous | Jan 01, 2008 | |
Printed | Page 281 annotation, first line |
Change "is just like an interface" to "is just like what you'd see in an interface" |
Anonymous | Jan 01, 2008 | |
Printed | Page 281 code at the bottom of the page |
change "SetMissionInfo" to "public override SetMissionInfo" |
Anonymous | Jan 01, 2008 | |
Printed | Page 284 Last paragraph by Interface |
Interface says "And that's just plan rude" - plan should be plain. |
Anonymous | Jun 08, 2008 | Sep 01, 2008 |
Printed | Page 284 Last paragraph by Interface |
Interface says "And that's just plan rude" - plan should be plain. |
Anonymous | Sep 01, 2008 | |
Printed | Page 289 second paragraph, last line |
Change "check it off the list" to "check it off the following list" |
Anonymous | Jan 01, 2008 | |
Printed | Page 291 code under step 6 |
Change both instances of "read-only DoorLocation" to "DoorLocation" |
Anonymous | Jan 01, 2008 | |
Printed | Page 298 step #3, second bullet point |
(that'll be passed in by form) |
Anonymous | Sep 01, 2008 | |
Printed | Page 301 about two thirds of the way down the page -- the fourth annotation's arrow is pointing at it. Change this |
while (hidden) { |
Anonymous | Jan 01, 2008 | |
Printed | Page 301 13 lines from the bottom of the page - |
Remove "0," from a line of code |
Anonymous | Sep 01, 2008 | |
Printed | Page 312 fourth annotation on the right |
Change: This shows "30", 10 * 3. |
Anonymous | Jan 01, 2008 | |
Printed | Page 313 |
In the first answer, change ?What you saw was a constructor? to ?What you saw was a method? |
Anonymous | Sep 01, 2008 | |
Printed | Page 315 middle of page |
error in the 09/08 errata !! Note from the Author or Editor: |
Frederic Rabine | Apr 17, 2009 | |
Printed | Page 315 middle of page |
Console.WriteLine(cards[i].ToString()); |
Anonymous | Sep 01, 2008 | |
Printed | Page 317 Step 1 code listing |
Current code states: |
Anonymous | Jun 03, 2008 | Sep 01, 2008 |
Printed | Page 317 |
In step 1, change this: |
Anonymous | Sep 01, 2008 | |
Printed | Page 319 Sharpen Your Pencil |
Swap "object o = myList[1];" and "int theSize = myList.Count;" so they're in the same order as on page |
Anonymous | Sep 01, 2008 | |
Printed | Page 321 First block of code for adding new list |
The list for addding new shoes is missing the "Shoe" object/class field right before ...Style.Sneakers |
Anonymous | Sep 01, 2008 | |
Printed | Page 322 first annotation, last line |
Change "and limit the type" to "which limits its members to that type" |
Anonymous | Jan 01, 2008 | |
Printed | Page 322 |
In bullet #5, change ?type parameter? to ?type argument? |
Anonymous | Sep 01, 2008 | |
Printed | Page 330 first paragraph, second line |
Change "to build your own sorting logic" to "to build a separate class to help the List sort out its members" |
Anonymous | Jan 01, 2008 | |
Printed | Page 331 remove the top annotation ("Console applications that...") |
Anonymous | Jan 01, 2008 | ||
Printed | Page 331 #2, second paragraph, first line |
Change "box underneath it, when you" to "box underneath it. When you" |
Anonymous | Jan 01, 2008 | |
Printed | Page 335 first annotation |
The annotation should point to "dic-tion-ar-y" and not the text underneath it. |
Anonymous | Jan 01, 2008 | |
Printed | Page 335 second annotation on the right pointing to TKey and TValue |
Change "The first item" to "These represent types. The first type" |
Anonymous | Jan 01, 2008 | |
Printed | Page 339 4th line of body text at the top of the page |
change "obects" to "objects" |
Anonymous | Jan 01, 2008 | |
Printed | Page 348 1st line of comments in 2nd AskForACard() method |
// Ask the other players for a value. first |
Anonymous | Sep 01, 2008 | |
Printed | Page 349 1st block of code |
Full details: Note from the Author or Editor: |
Anonymous | Jul 01, 2008 | Sep 01, 2008 |
Printed | Page 349 1st block of code |
Full details: |
Anonymous | Sep 01, 2008 | |
Printed | Page 350 under the Deal() method, |
Page 350, under the Deal() method, currently reads: Note from the Author or Editor: |
Anonymous | Mar 16, 2009 | |
Printed | Page 367 2nd paragraph |
The text in my book says: "...Set the BackColor Poperty of each to Color.Transparent (If you use the Properties window to set the property, just type it into the BackColor row)" Note from the Author or Editor: |
Haavard | Feb 21, 2010 | |
Printed | Page 367 In the second paragraph, change "Transparent" to "Color.Transparent (if you use the Properties window to set the propery, just type it into the BackColor row)." |
Add an annotation in the top right corner pointing at the screenshot: "You can set a PictureBox's BackColor property to Color.Transparent to let the form's background picture or color show through any transparent pixels in the picture." |
Anonymous | Jan 01, 2008 | |
Printed | Page 369 Add an annotation in the bottom left-hand corner pointing to the last line of code: "All the other weapons' borders should be turned off." |
Anonymous | Jan 01, 2008 | ||
Printed | Page 369 Bottom diagram (How the inventory scroll works) |
The label on the top arrow from "Inventory Icon Clicked" Form object image to Game object image is missing a right parenthesis on the "if" statement. |
Anonymous | Jul 11, 2008 | Sep 01, 2008 |
Printed | Page 370 top annotation |
Change "the Rectangle class" to "Rectangle and Point" |
Anonymous | Jan 01, 2008 | |
Printed | Page 372 Add an annotation pointing to the Mover box: "We added return values and parameters to this class diagram to make it easier for you to see what's going on." |
Anonymous | Jan 01, 2008 | ||
Printed | Page 374 near the vertical center of the page |
The printing date of my copy is 04/08. On page 374 near the vertical center of the Note from the Author or Editor: |
Anonymous | Sep 03, 2008 | |
Printed | Page 376 Change the annotation in the middle from "The NearPlayer() method uses the Mover.Nearby() static method to figure out if the enemy is near the player." to "The Enemy class inherited the Nearby() method from mover, which it can use to figure out whether it |
Anonymous | Jan 01, 2008 | ||
Printed | Page 378 Code near the bottom of the page |
Hi! This is Andrew, the author. This is a fix to a typo that was pointed out in the forum: |
Anonymous | Oct 25, 2008 | |
Printed | Page 378 In the code, 10 lines from the bottom of the page |
Add an annotation that points to this line of code: "if (Nearby(enemy.Location, target, radius)) {" |
Anonymous | Jan 01, 2008 | |
Printed | Page 383 bullet #4 |
Check use the Game .... |
Anonymous | Sep 01, 2008 | |
Printed | Page 384 second paragraph, second line: |
change "and add way" to "and add a way" |
Anonymous | Jan 01, 2008 | |
Printed | Page 385 thought bubble |
Move the underline so that it's under "am" |
Anonymous | Jan 01, 2008 | |
Printed | Page 387 In step 1, change ?text or binary data? to ?your data |
Anonymous | Sep 01, 2008 | ||
Printed | Page 395 second half |
private variables are supposed to be lowercase, yet you have "private Streamwriter Writer" Note from the Author or Editor: |
Michael | Mar 20, 2009 | |
Printed | Page 398;399 Third comment |
Page 398, third comment; Note from the Author or Editor: |
Anonymous | Jun 04, 2008 | Sep 01, 2008 |
Printed | Page 398 middle annotation |
propery should be property |
Anonymous | Sep 01, 2008 | |
Printed | Page 399 first paragraph, first sentence |
Change "An OpenFileDialog box object" to "An OpenFileDialog object" |
Anonymous | Jan 01, 2008 | |
Printed | Page 399 The second comment on the left hand side of the page says "..and opens the folder specified in the InitialFolder property". But there is no InitialFolder in the code, there's an InitialDirectory. |
In the bottom left-hand annotation, change InitialFolder to InitialDirectory. |
Anonymous | Sep 01, 2008 | |
Printed | Page 406 fifth annotation that starts "In this case" |
Change "the Log stream, so the Dispose()" to "pointed to by sw -- which was declared in the using statement, so the Dispose()" |
Anonymous | Jan 01, 2008 | |
Printed | Page 406 bottom block of code, first two lines that start with "using" |
Remove the semicolons at the end of these two lines and add an extra closing parenthesis at the end of each line. The code should be: |
Anonymous | Jan 01, 2008 | |
Printed | Page 413 |
Change the leftmost annotation from this: |
Anonymous | Sep 01, 2008 | |
Printed | Page 417 bullet #3 |
"you can go back to fhe file....." |
Anonymous | Sep 01, 2008 | |
Printed | Page 418 brain barbell |
List<Passangers>object |
Anonymous | Sep 01, 2008 | |
Printed | Page 421 - first line of code ("[Serializable"]) under step #1 |
Add an annotation pointing to [Serializable]: You need to add this attribute to the top of any class in order to serialize it. |
Anonymous | Jan 01, 2008 | |
Printed | Page 421 third-to-last line of code |
Remove the semicolon from this line: |
Anonymous | Jan 01, 2008 | |
Printed | Page 421 - code |
Change both instances of "Joe" to "joe" -- not capitalized |
Anonymous | Jan 01, 2008 | |
Printed | Page 422 step 3, second line |
change PrintCards to DealCards |
Anonymous | Jan 01, 2008 | |
Printed | Page 422 code, fifth line from the bottom |
change "DeckToDeal.Deal();" to "DeckToDeal.Deal(0);" |
Anonymous | Jan 01, 2008 | |
Printed | Page 423 step 4, second-to-last line o code |
Swap the line of code that starts "DealCards(..." with the preceding line so it's before the closing curly brace, and indent it by another two spaces. |
Anonymous | Jan 01, 2008 | |
Printed | Page 423 second annotation |
The arrow for this annotation is slightly misaligned -- it needs to point to "(Deck)" |
Anonymous | Jan 01, 2008 | |
Printed | Page 423 bullet #4 |
in button2_click event handler, |
Anonymous | Sep 01, 2008 | |
Printed | Page 424 Behind the Scenes box, second line of text at the top |
Make "unicode" uppercase - "Unicode" |
Anonymous | Jan 01, 2008 | |
Printed | Page 425 Step number 3 |
You forgot to tell us the 4th Hebrew letter, U+05E9, as you're telling us what to choose on the character map. You only mention it as an afterthought at the bottom of the page. Note from the Author or Editor: |
Michael | Mar 24, 2009 | |
Printed | Page 425 step 3, first paragraph, last line |
change: |
Anonymous | Jan 01, 2008 | |
Printed | Page 425 step 3, line of code |
Add a third parameter, Encoding.Unicode -- it should look like this: |
Anonymous | Jan 01, 2008 | |
Printed | Page 430 second block of code |
in the first line, change 227 to 218 |
Anonymous | Jan 01, 2008 | |
Printed | Page 433 |
Add an annotation pointing to ?ReadBlock()? in the top paragraph: |
Anonymous | Sep 01, 2008 | |
Printed | Page 433 |
Add an annotation (without an arrow) to the space in the bottom left-hand corner: |
Anonymous | Sep 01, 2008 | |
Printed | Page 434 last answer, sixth line |
change "add a third parameter" to "change the third parameter" |
Anonymous | Jan 01, 2008 | |
Printed | Page 434 |
In the sidebar in the lower-right corner, change the text ?using two bytes each.? to ?using two or more bytes each.? |
Anonymous | Sep 01, 2008 | |
Printed | Page 436 seventh line of code |
change "save_Click" to "open_Click" |
Anonymous | Jan 01, 2008 | |
Printed | Page 448 |
In the title bar of the third class box on the bottom, change ?OverFlowException? to ?OverflowException? |
Anonymous | Sep 01, 2008 | |
Printed | Page 448 Second paragraph |
The text states: |
Anonymous | Sep 01, 2008 | |
Printed | Page 462 Second Answer, first sentence. |
"Whenever you program throws an exception, the runtime environment will search through |
Anonymous | Sep 01, 2008 | |
Printed | Page 465 bottom right-hand corner picture |
The "EX" label on the Exception object should have a white text background, not transparent, so it looks white and not grey |
Anonymous | Jan 01, 2008 | |
Printed | Page 468 third line ("throw new ArgumentNullException();") |
change "ArgumentNullException();" to "ArgumentException();" |
Anonymous | Jan 01, 2008 | |
Printed | Page 468 Code example, try block in consumeHoney_Click method |
The button click handler creates a HoneyDeliverySystem object called delivery and then tries to |
Anonymous | Sep 01, 2008 | |
Printed | Page 471 bottom right-hand corner box |
There should be no line break between "new" and "YourClass();" |
Anonymous | Jan 01, 2008 | |
Printed | Page 472 sixth annotation |
change "You'll often see one using statement inside of another." |
Anonymous | Jan 01, 2008 | |
Printed | Page 472 seventh annotation |
the arrow is pointing to an underscore that's misaligned -- it should be under "Log" |
Anonymous | Jan 01, 2008 | |
Printed | Page 472 Fifth annotation |
Surely the underline is misplaced and should be under "must", not over it? |
Anonymous | Sep 01, 2008 | |
Printed | Page 473 fourth answer, last paragraph |
change "SomethingRisky()" to "DoSomethingRisky()" |
Anonymous | Jan 01, 2008 | |
Printed | Page 474 - second paragraph, first line |
change "Take a look at the DivisorCalculator" |
Anonymous | Jan 01, 2008 | |
Printed | Page 484 first annotation that starts "When the ball gets hit" |
change BallHasBeenHit() to OnBallInPlay() |
Anonymous | Jan 01, 2008 | |
Printed | Page 485 Annotation to Umpire object |
The note states: |
Anonymous | Sep 01, 2008 | |
Printed | Page 485 Final paragraph, 2nd and 3rd sentences |
There is inconsistent use of singular/plural in the last paragraph: |
Anonymous | Sep 01, 2008 | |
Printed | Page 487 fourth annotation that starts "Here's what each object" |
change this annotation to: Here's what each object that handles the event gets to work with. It also gets a reference to the object that raised the event. |
Anonymous | Jan 01, 2008 | |
Printed | Page 488 bottom annotation starting with "When you use EventHandler..." |
Add another sentence to the end of this annotation: sender is a reference to the object that raised the event, and e is a reference to an EventArgs object. |
Anonymous | Jan 01, 2008 | |
Printed | Page 496 Exercise Solution, declaration of BallEventArgs class |
The definition of the BallEventArgs class is missing its inheritance from the EventArgs base class. |
Anonymous | Sep 01, 2008 | |
Printed | Page 498 first annotation |
remove the word "pre-made" from the second line of the annotation |
Anonymous | Jan 01, 2008 | |
Printed | Page 498 bullet #2 |
messagebox.show should say "You just clicked on the form" |
Anonymous | Sep 01, 2008 | |
Printed | Page 498 Step 1 |
The text for Step 1 states: |
Anonymous | Sep 01, 2008 | |
Printed | Page 498 First annotation |
The text for note 1 states: |
Anonymous | Sep 01, 2008 | |
Printed | Page 499 |
Add an annotation pointing to the code under step 6: |
Anonymous | Sep 01, 2008 | |
Printed | Page 502 step 1, first paragraph, second line |
Change "AddSecretIngredient.cs" to "GetSecretIngredient.cs" |
Anonymous | Jan 01, 2008 | |
Printed | Page 506 third paragraph |
change both instances of "ListenForClues()" to "treasure_RunForCover()" |
Anonymous | Jan 01, 2008 | |
Printed | Page 506 Pool Puzzle Solution, 3rd line of code |
in the line: |
Anonymous | Sep 01, 2008 | |
Printed | Page 509 fifth bullet point |
Change "You chain several" to "You can chain several" |
Anonymous | Jan 01, 2008 | |
Printed | Page 510 first answer, second paragraph, last line |
The last word of the last sentence is cut off -- add the word "constructor." |
Anonymous | Jan 01, 2008 | |
Printed | Page 510 there are no Dumb Questions, Annotation 2 |
The last note states: |
Anonymous | Sep 01, 2008 | |
Printed | Page 510 there are no Dumb Questions, Answer 3 |
The fifth sentence states: |
Anonymous | Sep 01, 2008 | |
Printed | Page 511 second italicized paragraph near the middle of the page |
change both instances of "ListenForClues()" to "treasure_RunForCover()" |
Anonymous | Jan 01, 2008 | |
Printed | Page 520 bottom paragraph |
Add an annotation at the bottom of the page pointing up at the bottom paragraph: |
Anonymous | Jan 01, 2008 | |
Printed | Page 521 second annotation |
Remove the asterisk from the beginning of the annotation. Change "We used" to "You'll use". |
Anonymous | Jan 01, 2008 | |
Printed | Page 521 Annotation to Step 4 |
The note states: |
Anonymous | Sep 01, 2008 | |
Printed | Page 524 second line |
Change "its" to "it's" |
Anonymous | Jan 01, 2008 | |
Printed | Page 529 Hive class diagram |
getLocation should be GetLocation |
Anonymous | Sep 01, 2008 | |
Printed | Page 529 Step 3, second sentence |
In Step 1, the skeleton code for the Hive class states "... locations should be private, ...". |
Anonymous | Sep 01, 2008 | |
Printed | Page 536 first two annotations |
Anonymous | Jan 01, 2008 | ||
Printed | Page 536 World constructor |
There should be a line to instantiate the Hive variable but it is missing. |
Anonymous | Sep 01, 2008 | |
Printed | Page 537 second annotation |
The annotations and their arrows are misaligned. They need to be shifted down. |
Anonymous | Jan 01, 2008 | |
Printed | Page 537 second answer on bottom of page |
"..beginning of a list of five bees..." |
Anonymous | Sep 01, 2008 | |
Printed | Page 538 step 1, second line |
Change "hive and world in the constructor" to "hive and world as parameters to its constructor" |
Anonymous | Jan 01, 2008 | |
Printed | Page 538 step 5, first line |
Change "The World class keeps up with all the bees" to "The World class uses a List of Bee objects to keep track of all the bees" |
Anonymous | Jan 01, 2008 | |
Printed | Page 539 second question |
Change "Point object" to "Point" |
Anonymous | Jan 01, 2008 | |
Printed | Page 539 last answer |
Add this after the first sentence: "Plus, it'll come in handy when we do the animation." |
Anonymous | Jan 01, 2008 | |
Printed | Page 539 final answer |
"No reason reinvent the wheel..." |
Anonymous | Sep 01, 2008 | |
Printed | Page 539 There are no Dumb Questions, Answer 3 |
Sentence 2 starts: |
Anonymous | Sep 01, 2008 | |
Printed | Page 540 first annotation |
Change "local variables" to "private fields" |
Anonymous | Jan 01, 2008 | |
Printed | Page 540 second annotation that starts "More basic code...", second line |
Change "assign it locally" to "set a private field" |
Anonymous | Jan 01, 2008 | |
Printed | Page 541 bottom |
The annotations are overlapping the box |
Anonymous | Jan 01, 2008 | |
Printed | Page 544 first annotation in the left |
Change "dropdown that appears on the form" to "dropdown that appears on the ToolStrip when you're in the form designer" |
Anonymous | Jan 01, 2008 | |
Printed | Page 544 second annotation on the left |
Change "Use the dropdown" to "Use the dropdown that appears on the StatusStrip in the designer" |
Anonymous | Jan 01, 2008 | |
Printed | Page 544 first annotation on the right that starts "Each of these labels" |
Add a new annotation above this one with an arrow pointing down at it. It should say: |
Anonymous | Jan 01, 2008 | |
Printed | Page 545 UpdateStats method |
There should be an annotation reminding us to add a line to the Form1 to create the framesRun variable, if that's the best place for it. Also, what type is it? I've assumed double, but probably an int would do unless this is going to be a very long run... Note from the Author or Editor: |
Anonymous | May 27, 2008 | |
Printed | Page 547 |
Add the "Behind the Scenes" picture (like on p576) to the upper right-hand corner of the page. |
Anonymous | Jan 01, 2008 | |
Printed | Page 548 top right |
In the second-to-last line of the ?DateTime & TimeSpan? box, change ?obect? to ?object? |
Anonymous | Sep 01, 2008 | |
Printed | Page 549 exercise box |
Add another annotation underneath the first one that says: "Just double-click on a ToolStrip button in the designer to make the IDE add its event handler, just like a normal button." |
Anonymous | Jan 01, 2008 | |
Printed | Page 556 middle |
In the second line of body text, change Langauge to Language |
Anonymous | Sep 01, 2008 | |
Printed | Page 560 |
move the arrow from the second-to-last annotation a little to the right ? it?s overlapping the code. |
Anonymous | Sep 01, 2008 | |
Printed | Page 561 left-hand annotation |
The annotation is pointing to an underline, but the underline is misaligned--it needs to be moved up |
Anonymous | Jan 01, 2008 | |
Printed | Page 561 middle |
When reading in the file the variable name should be input as opposed to output. |
Anonymous | Sep 01, 2008 | |
Printed | Page 566 first line |
Change "great simulator" to "cool simulator" |
Anonymous | Jan 01, 2008 | |
Printed | Page 566 step 2 |
Change "We'll add a Print button to the stats window" to "We'll make the Print button in the stats window work" |
Anonymous | Jan 01, 2008 | |
Printed | Page 572 Sharpen Your Pencil, explanation for fourth code item |
The Solution states:- Note from the Author or Editor: |
Anonymous | Jun 27, 2008 | Sep 01, 2008 |
Printed | Page 572 Sharpen Your Pencil, explanation for fourth code item |
The Solution states:- |
Anonymous | Sep 01, 2008 | |
Printed | Page 574 screenshot |
Add an annotation pointing to the screenshot that says: "Double-click on Resources.resx to bring up the Resources page." |
Anonymous | Jan 01, 2008 | |
Printed | Page 575 step 3 |
add an annotation pointing to the line of code under step 3 that says: "When the program's running, each picture is stored in memory as a Bitmap object." |
Anonymous | Jan 01, 2008 | |
Printed | Page 576 step 2 |
change "and and" to "add and" |
Anonymous | Jan 01, 2008 | |
Printed | Page 576 behind the scenes box, last paragraph |
Change "you see in the form's Properties window" to "you see in the Properties window for any control" |
Anonymous | Jan 01, 2008 | |
Printed | Page 577 whole page |
Bullet point 3 is repeated |
Anonymous | Sep 01, 2008 | |
Printed | Page 582 annotation that starts "Set the form's BackgroundImage" |
change "inside hive picture." to "inside hive picture, and its BackgroundImageLayout property to Stretch." |
Anonymous | Jan 01, 2008 | |
Printed | Page 582 MouseClick Event Handler code |
The code given shows the MouseClick EventHandler as being in the main form - Form1_MouseClick(). Surely it should be in the FieldForm - FieldForm_MouseClick() (and the HiveForm)? Note from the Author or Editor: |
Anonymous | Jun 28, 2008 | Sep 01, 2008 |
Printed | Page 582 MouseClick Event Handler code |
The code given shows the MouseClick EventHandler as being in the main form - Form1_MouseClick(). Should it be in the FieldForm - FieldForm_MouseClick() (and the HiveForm)? |
Anonymous | Sep 01, 2008 | |
Printed | Page 583 top annotation |
"...other class needs to update to any..." |
Anonymous | Sep 01, 2008 | |
Printed | Page 585 MoveBeeFromHiveToField method |
why does this need a Bee parameter? |
Anonymous | Sep 01, 2008 | |
Printed | Page 589 Step 1 |
the constants to increase bees is in the Hive class, not the World class |
Anonymous | Sep 01, 2008 | |
Printed | Page 591 step 2, first line |
change "an array of four of them" to "in this case, an array of four of them" |
Anonymous | Jan 01, 2008 | |
Printed | Page 591 block of code under step 2 |
Add an annotation pointing at this code that says: "These lines take each of the Bitmap objects that store the bee pictures and shrink them down using the ResizeImage() method we wrote." |
Anonymous | Jan 01, 2008 | |
Printed | Page 593 last paragraph, last line |
Change "trickier..." to "slower..." |
Anonymous | Jan 01, 2008 | |
Printed | Page 602 Step 2 code example |
Step 1 says to double-click on Paint in the Form's Events list. This produces an Event Handler called Form1_Paint. Step 2 shows this code but now it's called UserControl1_Paint. Surely it should (still) be Form1_Paint? Note from the Author or Editor: |
Anonymous | Jul 08, 2008 | Sep 01, 2008 |
Printed | Page 602 Step 3 first sentence |
Step 3 says:- Note from the Author or Editor: |
Anonymous | Jul 08, 2008 | Sep 01, 2008 |
Printed | Page 602 Step 2 code example |
Step 1 says to double-click on Paint in the Form's Events list. This produces an Event Handler called Form1_Paint. Step 2 shows this code but now it's called UserControl1_Paint. Surely it should (still) be Form1_Paint? |
Anonymous | Sep 01, 2008 | |
Printed | Page 602 Step 3 first sentence |
Step 3 says:- |
Anonymous | Sep 01, 2008 | |
Printed | Page 606 first answer, last line |
change "programmatically" to "in code" |
Anonymous | Jan 01, 2008 | |
Printed | Page 606 fourth answer, fifth line from the bottom |
change "got CreateGraphics() method" to "got a CreateGraphics() method" |
Anonymous | Jan 01, 2008 | |
Printed | Page 606 - fifth answer, first paragraph, second sentence |
change "When a class implements IDisposable, any time you instantiate it you should call its dispose() method." |
Anonymous | Jan 01, 2008 | |
Printed | Page 606 last answer |
Remove the last sentence ("You'll see more about that in just a minute.") |
Anonymous | Jan 01, 2008 | |
Printed | Page 607 second paragraph |
change "most amateur computer games..." to "some amateur computer games, for example." |
Anonymous | Jan 01, 2008 | |
Printed | Page 615 step 5, last line of code |
Add an annotation pointing to "DrawBee" that says: "We'll reuse our DrawBee() method from a few pages ago." |
Anonymous | Jan 01, 2008 | |
Printed | Page 625 fifth annotation that starts "You can leave out" |
Replace this annotation with: "Don't worry about drawing the Clone and List objects -- just add the objects for the Captain, the Swindler, the clone factory and Swindler's escape plane." |
Anonymous | Jan 01, 2008 | |
Printed | Page 629 code in the bottom right-hand of the page |
indent the "clones.Remove(clone);" line by three spaces |
Anonymous | Jan 01, 2008 | |
Printed | Page 629 |
Change the fifth paragraph from this: |
Anonymous | Sep 01, 2008 | |
Printed | Page 633 second annotation starting "This is straight" |
change this annotation to: "The Clone will create the C:Temp directory and serialize itself out to a file called Clone.dat." |
Anonymous | Jan 01, 2008 | |
Printed | Page 633 third annotation starting "You could set a class" |
change this annotation to: "We hardcoded the filename -- we included them as string literals in the code. That's fine for a small demo program like this, but it's not the most robust design. Can you think of problems this might cause, and how you could avoid them?" |
Anonymous | Jan 01, 2008 | |
Printed | Page 635 |
In the first question, fourth line, change this: |
Anonymous | Sep 01, 2008 | |
Printed | Page 637 |
Add an annotation pointing to the second paragraph of body text in the middle of the page: |
Anonymous | Sep 01, 2008 | |
Printed | Page 637 |
In the sidebar, change this: |
Anonymous | Sep 01, 2008 | |
Printed | Page 638 first block of code, first line |
change 37 to 25 |
Anonymous | Jan 01, 2008 | |
Printed | Page 638 |
In the second line of body text, change ?string? to ?decimal?. |
Anonymous | Sep 01, 2008 | |
Printed | Page 639 |
Next to step 1, add this annotation (no arrow): |
Anonymous | Sep 01, 2008 | |
Printed | Page 642 |
Add an annotation on page 642 pointing to step #2: ?There?s a special case where value types don?t get boxed: if they live inside an object. If you?ve got a class with an int field, that int doesn?t need to be boxed before it?s added to the heap, because it?s already got a container ? the object that it?s a part of.? |
Anonymous | Sep 01, 2008 | |
Printed | Page 643 Halfway through code on left |
Line 5 of the code on the left should be wine.Set(book); Note from the Author or Editor: |
Anonymous | Jul 23, 2008 | Sep 01, 2008 |
Printed | Page 643 Halfway through code on left |
Line 5 of the code on the left should be wine.Set(book); |
Anonymous | Sep 01, 2008 | |
Printed | Page 644 third answer, second sentence |
change "familiar field from" to "familiar code from" |
Anonymous | Jan 01, 2008 | |
Printed | Page 646 top paragraph, first line |
Add an annotation pointing to the word "sealed" in the first line that says: "Remember the sealed access modifier from Chapter 7? It's how you set up a class that can't be extended." |
Anonymous | Jan 01, 2008 | |
Printed | Page 647 second answer, first two sentences ("Sure. But then you'd need ... would have to change.") |
Change these sentences to: "If you can extend the class, then you'll usually end up doing that -- extension methods aren't meant to be a replacement for inheritance. But they come in really handy when you've got classes that you can't extend." |
Anonymous | Jan 01, 2008 | |
Printed | Page 648 first paragraph |
Add this to the end of the first paragraph: "Create a new project, and add a file called MyExtensions.cs." |
Anonymous | Jan 01, 2008 | |
Printed | Page 648 step 1, first line of code |
change "Emergency" to "MyExtensions" |
Anonymous | Jan 01, 2008 | |
Printed | Page 648 step 3, first line of code |
change "HumanExtensions" to "StringExtensionMethods" |
Anonymous | Jan 01, 2008 | |
Printed | Page 648 step 4, first sentence |
change "Add using Emergency; to your code." to "Now go to your form code and add using MyExtensions; to the top, and add a button to the form so you can try out your new extension method inside its event handler." |
Anonymous | Jan 01, 2008 | |
Printed | Page 648 top paragraph, step 1 code, step 3 code |
The name of the class is inconsistent throughout the example. The end of the first paragraph tells the reader to add a file called MyExtensions.cs Note from the Author or Editor: |
Anonymous | Jul 23, 2008 | Sep 01, 2008 |
Printed | Page 648 top paragraph, step 1 code, step 3 code |
The name of the class is inconsistent throughout the example. The end of the first paragraph tells the reader to add a file called MyExtensions.cs |
Anonymous | Sep 01, 2008 | |
Printed | Page 649 |
change this magnet: |
Anonymous | Sep 01, 2008 | |
Printed | Page 650 Column of magnets on the right |
The code for the Extension Magnets won't run as written. Note from the Author or Editor: |
Anonymous | Jul 23, 2008 | Sep 01, 2008 |
Printed | Page 650 Column of magnets on the right |
The code for the Extension Magnets won't run as written. |
Anonymous | Sep 01, 2008 | |
Printed | Page 650 |
change this magnet: |
Anonymous | Sep 01, 2008 | |
Printed | Page 655 bottom left-hand annotation |
Change "All of the Objectville" to "All of the Objectville Paper Company" |
Anonymous | Jan 01, 2008 | |
Printed | Page 655 Brain Power box |
change "Objectville paper" to "Objectville Paper Company data" |
Anonymous | Jan 01, 2008 | |
Printed | Page 656 add an annotation pointing to the first paragraph |
We gave you Ready Backe Code for the LINQ query in Chapter 12. We'll see exactly how it works in a few pages. |
Anonymous | Jan 01, 2008 | |
Printed | Page 658 "var" tool tip box |
Put the two lines of code in boldface |
Anonymous | Jan 01, 2008 | |
Printed | Page 659 Brain Power |
change "Jim" to "Jimmy" |
Anonymous | Jan 01, 2008 | |
Printed | Page 660 first sentence |
Change "It's easy to mine Jimmy's data" to "Jimmy could analyze his comic book data" |
Anonymous | Jan 01, 2008 | |
Printed | Page 669,670 Pool Puzzle Solution, initialization of lines array |
Page 669 uses this code to initialize the lines array:- Note from the Author or Editor: |
Anonymous | Jun 16, 2008 | Sep 01, 2008 |
Printed | Page 669 |
Page 669 uses this code to initialize the lines array:- |
Anonymous | Sep 01, 2008 | |
Printed | Page 670 Pool Puzzle Solution, first annotation |
Whoops, sorry, sent that before I'd overtyped the new description! Note from the Author or Editor: |
Anonymous | Jun 16, 2008 | Sep 01, 2008 |
Printed | Page 670 Pool Puzzle Solution |
Page 669 uses this code to initialize the lines array:- Note from the Author or Editor: |
Anonymous | Jun 16, 2008 | Sep 01, 2008 |
Printed | Page 670 Pool Puzzle, initialization of lines array |
In the left-hand block of code, there are five lines that start with: |
Anonymous | Sep 01, 2008 | |
Printed | Page 670 Pool Puzzle Solution, first annotation |
Whoops, sorry, sent that before I'd overtyped the new description! |
Anonymous | Sep 01, 2008 | |
Printed | Page 671 first paragraph, third line |
change "class with two fields" to "class with two automatic properties" |
Anonymous | Jan 01, 2008 | |
Printed | Page 671 Annotation to Step 3, second sentence |
The annotation, second sentence states: Note from the Author or Editor: |
Anonymous | Jun 17, 2008 | Sep 01, 2008 |
Printed | Page 671 Annotation to Step 3, second sentence |
The annotation, second sentence states: |
Anonymous | Sep 01, 2008 | |
Printed | Page 672 Sample code for Step 1 |
The definition for method FindPurchases starts:- Note from the Author or Editor: |
Anonymous | Jun 20, 2006 | Sep 01, 2008 |
Printed | Page 672 Sample code for Step 1 |
The definition for method FindPurchases starts:- |
Anonymous | Sep 01, 2008 | |
Printed | Page 677 there are no Dumb Questions, Answer 4 |
The answer starts:- Note from the Author or Editor: |
Anonymous | Jun 20, 2008 | Sep 01, 2008 |
Printed | Page 677 there are no Dumb Questions, Answer 4 |
The answer starts:- |
Anonymous | Sep 01, 2008 | |
Printed | Page 679 Step 3, code example, join line |
There is an inconsistency in the code. The data context variable for the Contacts database is originally created as "context" but the join line that links it to the Starbuzz data calls it "dataContext". This will not compile. Note from the Author or Editor: |
Anonymous | Jun 25, 2008 | Sep 01, 2008 |
Printed | Page 679 Step 3, code example, join line |
There is an inconsistency in the code. The data context variable for the Contacts database is originally created as "context" but the join line that links it to the Starbuzz data calls it "dataContext". This will not compile. |
Anonymous | Sep 01, 2008 | |
Printed | Page 683 left-hand annotation starting with "The spacebar shoots" |
Change "there can only be two shots" to "there can only be two player shots" |
Anonymous | Jan 01, 2008 | |
Printed | Page 683 right-hand annotation that starts "The game should keep" |
change "all keypresses" to "which keys are currently being held down" |
Anonymous | Jan 01, 2008 | |
Printed | Page 685 bottom annotation |
Change "The Stars keeps" to "The Stars object keeps" |
Anonymous | Jan 01, 2008 | |
Printed | Page 686 second annotation |
change "DisplayRectangle" to "ClientRectangle" |
Anonymous | Jan 01, 2008 | |
Printed | Page 687 bottom subheading |
change "Adjust the timer" to "Adjust the timers" |
Anonymous | Jan 01, 2008 | |
Printed | Page 689 second to last paragraph, last line |
change "Refresh()" to "Invalidate()" |
Anonymous | Jan 01, 2008 | |
Printed | Page 689 last paragraph |
Add this sentence to the end of the paragraph: "You can start the game out in this state, so the user has to hit S to start a new game." |
Anonymous | Jan 01, 2008 | |
Printed | Page 691 second paragraph |
replace the whole paragraph with this text: So the form should have a Paint event handler (make sure you set the form's DoubleBuffered property to true!). You'll delegate the rest of the drawing to the Game object by calling its Draw() method every time the form's Paint event fires. |
Anonymous | Jan 01, 2008 | |
Printed | Page 694 second paragraph |
Change DisplayRectangle to ClientRectangle |
Anonymous | Jan 01, 2008 | |
Printed | Page 704 1st paragraph, 3rd line |
"Add add" s/b "Add" |
Anonymous | Jan 01, 2008 | |
Printed | Page 707 add an annotation pointing to the last paragraph |
Plus, it'll even figure out that it should create a static method, since it doesn't use any fields. |
Anonymous | Jan 01, 2008 | |
Printed | Page 710 Annotation in bottom-right corner of page, 4th line |
"applicaiton" s/b "application" |
Anonymous | Jan 01, 2008 | |
Printed | Page 712 3rd paragraph, 1st line |
Missing period. |
Anonymous | Jan 01, 2008 | |
Printed | Page 712 |
In the header and first line of body text change ?Windows Presentation Framework? to ?Windows Presentation Foundation?. |
Anonymous | Sep 01, 2008 | |
Printed | Page 718 |
Index "argument" |
Anonymous | Sep 01, 2008 |