Head First C#

Errata for Head First C#

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.

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

Version Location Description Submitted By Date Submitted

I would like a page of all the controls and their most common methods listed in the book. I find myself having to search back and forth in order to know how to call textbox add methods, or how to work a list box. Having a summary of all of these controls would make it easy and clearer to write programs in C#. Thank you

Thuy  May 04, 2014 
Printed Page chapter 9

In Chapter 9 about writing to and reading from file, you mentioned the FileInfo class, but there isn't any example of it. Would you write a page showing us the difference between FileInfo and File and show examples of how FileInfo is used. Thanks.

Thuy  May 08, 2014 
Printed, PDF, ePub, Mobi Page GDYfQwBgoHnqSPgHoW

8k1Qhy <a href="http://ufvaapchbvme.com/">ufvaapchbvme</a>, [url=http://lbfegpcykjie.com/]lbfegpcykjie[/url], [link=http://dgrfjuvyawlz.com/]dgrfjuvyawlz[/link], http://uqzfkoqrakfj.com/

xbmasigsh  Jul 31, 2016 
PDF, ePub, Safari Books Online Page UmxceXiptzhC

vYByon <a href="http://qblzeclrfgos.com/">qblzeclrfgos</a>, [url=http://emeyydparsdh.com/]emeyydparsdh[/url], [link=http://qefmjhpsnsed.com/]qefmjhpsnsed[/link], http://zdbriqaahskf.com/

akleow  Aug 01, 2016 
, Printed, ePub, Mobi, Safari Books Online Page qYCceQweBBUBAr

ZQcOPF <a href="http://gmcsproaskbj.com/">gmcsproaskbj</a>, [url=http://jvvpzeyivddl.com/]jvvpzeyivddl[/url], [link=http://hreijdfiumrd.com/]hreijdfiumrd[/link], http://stmqcvqnphkc.com/

ziiipm  Aug 06, 2016 
Printed, PDF, ePub Page WLpSBMtQVS

v0cNhg <a href="http://snungopzrwrt.com/">snungopzrwrt</a>, [url=http://oltxzyygbzgc.com/]oltxzyygbzgc[/url], [link=http://cbknjrshfuoo.com/]cbknjrshfuoo[/link], http://yagwlwjwulvu.com/

mwrmtacy  Aug 09, 2016 
, PDF, Other Digital Version Page WyJnmwuPwLTpWaag

Xy0Ipy <a href="http://nvypqkbcuiao.com/">nvypqkbcuiao</a>, [url=http://crfpjauxvfjt.com/]crfpjauxvfjt[/url], [link=http://layjvykbcbku.com/]layjvykbcbku[/link], http://atgnvcrvoovx.com/

kycnsa  Aug 18, 2016 
Printed Page 11

In the note section of page 11,your wrote: "The WPF Guide PDF contiains complete...." There is an extra "i" in "contiains", should be, "contains".

Thuy  May 11, 2014 
PDF Page 21
Last paragraph

Found in the downloadable PDF supplementary that covers WPF: The final paragraph of page 21 instructs the user to right-click the 'TextBox' element. The instruction should be to right-click the 'TextBlock'. The prior steps in the chapter had caused the creation of the TextBlock element which this instruction is referring to; and no TextBox element exists in the project.

David Merkt  Jul 03, 2014 
Printed Page 24
Near the bottom

You instructed on making the height of the progress bar 20. But then later you wrote: "...set the Width and Height to Auto." When I set the Height to Auto, I get a height of 468. Which is not right for a progress bar. So I just typed in 20. Why would we need to set the height of Auto?

Thuy  May 11, 2014 
PDF Page 33
2nd paragraph

You wrote: public sealed partial class MainPage : Save_the_Humans.Common.LayoutAwarePage { .... } I also wrote: Save_the_Humans.Common.LayoutAwarePage after the MainPage. But I get an error because "LayoutAwarePage" is not recognized. But when I just left the default: MainPage : Page, my program works. Why would I need the Save_the_Humans.Common.LayoutAwarePage?

Thuy   Apr 24, 2014 
Printed Page 33
Middle of page

In a note section you wrote: "Do you see a squiggly underline under playArea? Go back to the XAML editor and sure you set the name of the Canvas control to playArea." You are missing the word "make" in that sentence. It should be "make sure...", not just "sure..." Also, I did name my canvas playArea, but I still have a red squiggly line under playArea. But when I save my files, everything was updated so the program recognized playArea. I didn't know this at first so it was frustrating. Would you mention to the reader to save their work so that the names of their controls will be recognized by the program? Thanks.

Thuy  May 11, 2014 
PDF Page 34
On the note section near the bottom half of page

On the note section that reads: This code makes the enemy you created move across playArea. If you change 4 and b, you can make the enemy move slower or faster. The "b" should be a 6. If it is a 6, it really looks like a "b", which is confusing at first glance.

Thuy  Apr 24, 2014 
Printed Page 57
3rd paragraph

In the 3rd paragraph you wrote: Windows.UI.Xaml.Conrols But it should be: Windows.UI.Xaml.Controls You're missing the "t" in Controls.

Thuy  Apr 23, 2014 
PDF Page 90
Second paragraph

You wrote: Disabling AutoSize to true..... Should be: Disabling AutoSize to false.....

Thuy  Apr 24, 2014 
Printed Page 245
bottom of page

Quote "All the intelligence for dealing with the writing, the number of people, and the cake size is built into the NumberOfPeople and CakeWriting set accessors". This is not possible as in the exercise the set accesses do not execute code, this is confirmed by the source code for the exercise hosted on this site. In fact on page 241 the CakeWriting property is described as having a get accessor that "returns the contents of a backing field called cakeWriting", however through the exercise this backing field is never created. The accompanying text that goes along with this exercise is not conducive to a satisfactory completion of the exercise and the encapsulation methods prescribed are flawed.

Anonymous  Mar 13, 2015 
Printed Page 332
Side note in the middle of the page

You wrote: The living room connects to the dining room, which also connects to the kitchen. The inclusion of "also" makes it seem that the living room is also connected to the kitchen, but it isn't so. Would you take out the word "also" so that it just reads: "The living room connects to the dining room, which connects to the kitchen" Thank you

Thuy  May 01, 2014 
PDF Page 332
near the bottom

Card card = new Card((Suits)random.Next(4), (Values)random.Next(1, 14)); Should be: Card card = new Card((Card.Suits)random.Next(4), (Card.Values)random.Next(1, 14)); Or it won`t compile. Error 1 The type or namespace name 'Suits' could not be found (are you missing a using directive or an assembly reference?)

Sergio  Feb 19, 2016 
Printed Page 380
Middle, after the class diagrams

You wrote: List<Duck> ducks = new List<Duck>() {/* initialize your list as usual */ } <----------- semicolon needed You're missing a semicolon ( ; ) at the end of the initializing of the list.

Thuy  May 02, 2014 
Printed Page 380
Under the heading: Combine your birds into a single list

You wrote: ...if you have a list of Bird obects "obects" should be "objects", with a j.

Thuy  May 02, 2014 
Printed Page 380

You wrote: birds.AddRange(upcastDucks); But when I just write: birds.AddRange(ducks); it works just fine, why would I need to convert my ducks list into an IEnumerable<Bird> upcast = ducks ? When I can just pass in ducks and I get the same result?

Thuy  May 02, 2014 
Printed Page 387
Middle of Page - in bold letters: Dictionary<Tkey, TValue>....

You wrote: Dictionary<Tkey, TValue> kv...... The "k" in Tkey, should be capitalized. So it would be: Dictionary<TKey, TValue> kv = new Dictionary<TKey, TValue>();

Thuy  May 03, 2014 
Printed Page 392
Middle of Page in the UpdateForm() method

In the method private void UpdateForm(), you wrote: foreach(String cardName in game.GetPlayeCardNames()) Why is String capitalized? I thought that string object is lowercase? When I typed String into the IDE, there is both a capitalized String and a lowercase string, which one do I use for this method?

Thuy  May 04, 2014 
Printed Page 393
Middle of page in the method: PullOutValues

In the PullOutValues method you wrote: Deck deckToReturn = new Deck(new Cad[] { }); How could you have an empty array above, without any size declared, and still put add objects into the array? If the array doesn't have a size, how would the compiler know how much memory to give it?

Thuy  May 04, 2014 
Printed Page 422
Bottom of page

In the note section on page 422 you wrote: "It'll be set to DialogResult.OK if the user clicked OK, and DialogResult.Cancel if he hit Cancel." "if he hit" should be "if he hits" with an "s" at the end of "hit".

Thuy  May 07, 2014 
Printed Page 422
Bottom of page

I typed in OpenSomeFile(openFileDialog1.FileName); and I get a red swiggly line error under OpenSomeFile which tells me, "The name OpenSomeFile does not exist in the current context". If I'm not supposed to type something else, then please say so in the book, but if I'm supposed to type OpenSomeFile, then it's not working.

Thuy  May 07, 2014 
Printed Page 422
Near the top bottom of the page

You wrote: openFileDialog1.CheckfileExists = true; openFileDialog1.CheckPathExists = false; - these properties tell the dialog box to display an error message if the user tries to open up a file or path that doesn't exist on the drive. I think the openFileDialog1.CheckPathExists is supposed to be set to true NOT false in order for the error message to appear if the user opens a path that doesn't exist.

Thuy  May 07, 2014 
Printed Page 432
Bottom of page under heading: Make the folder button open a folder browser

For the exercise of building an Excuse Manager on page 432, you asked us to use the folderBrowserDialog without any prior lessons or mention of the folderBrowserDialog methods or properties. Would you write a page or two on the common methods and properties of the controls so that we can have all the methods we need organized in one place for future references? I felt a bit frustrated with the Excuse Manager on page 432 because there was no prior mention of a folderBrowserDialog, I didn't know how to use this without looking at the solution.

Thuy  May 07, 2014 
Printed Page 448
Bottom of page in the little side notes

You wrote: You can convert it to decimal using the Windows calculator: open it up, put it in Scientific mode, click the "Hex" radio button, enter "05E9, and then click the "Dec" - it's 1,513. BUT, the "Hex" and "Dec" radio buttons are NOT in the Scientific Mode of the Windows Calculator. Instead, they are in the Programmer mode.

Thuy  May 08, 2014 
Printed Page 457
Top of page

You wrote: It reads a block of characers into a char array... "characers" should be "characters", with a "t".

Thuy  May 08, 2014 
Printed Page 465
Bottom of page

You wrote at the bottom of the page: There are too many ways to build this lab for us to you a "right" answer. I think you're missing the word "give" so that the error sentence reads: There are too many ways to build this lab for us to GIVE you a "right" answer.

Thuy  May 08, 2014 
Printed Page 469
In the notes at the top

You wrote: Add nine PictureBox controls to the dungeon. Use the size property to make each one 30x30. But, 30x30 is NOT big enough for the images. Later on you gave us the right dimensions in another note: 50x50. Please change the 30x30 to 50x50. Thank you.

Thuy  May 09, 2014 
Printed Page 469
Bottom of page

You wrote: The hit points are in a TableLayoutPanel, just like the attack and movement buttons. But that's not true. The movement and attack buttons are in GroupBoxes, not TableLayoutPanel.

Thuy  May 09, 2014 
Printed Page 849
bottom if statement

You wrote: if (amount > 0) { }

Thuy  May 01, 2014 
Printed Page 849
bottom if statement

You wrote: if (amount > 0) { if (amount > 0) { ...... } } There should be only one if (amount > 0), not two.

Thuy  May 01, 2014 
Printed, PDF Page 852
First note

"Using the logical “or” and “and” operators’ short-circuiting properties is another way you can effectively write an if/else statement. This is the same as saying “only execute (y / x == 4) if (y < z) is true."" The last statement is wrong, i think you wanted to say "This is the same as saying “only execute (y / x == 4) if (y < z) is false"". If (y<z) is true, then (y / x == 4) will never be executed and no exception will be thrown. On the other hand, if (y<z) is false then (y / x == 4) will be executed and an exception will be thrown.

Anonymous  Nov 29, 2015 
Printed Page 855
Bottom of page

You wrote: "starting typing "System.Windows.Forms"..... Make sure it's highlighted and click OK. Now System.Windows.Forms shouldshow up under the References folder in the Soluton Explorer ..." BUT, the folder doesn't show up because highlighting System.Windows.Forms was not enough, I must make sure the check box is selected. However, this checkbox is hidden the first time I am trying to add a reference library, I only see the highlighted part, no check box. Until I looked at the picture in the book that I realized that there is also a checkbox you must select. So for the first time adding a reference library, users might not be aware that there is a checkbox that you must select because only the highlighted part shows up.

Thuy  May 01, 2014 
Printed Page 856
Top of page

You wrote on page 856: public class HiThereWriter But on age 854, it was declared public static class HiThereWriter The "static" is missing from the public class HiThereWriter on page 856.

Thuy  May 01, 2014 
Printed Page 858
first paragraph

You wrote: Later on, you learned how ot use async, await, and Task. The "ot" should be "to".

Thuy  Apr 27, 2014