(You are currently looking at the first edition version of this page. This page is also available for the second
and third editions.)
Errata for Chapter 8: Cutting fluff with a smart compiler
P212 and P213: Incorrect variable type claim
At the bottom of page 212, I use an example of:
var args = Environment.CommandLine;
and claim that args
would be of type string[]
. However, it would be of type string
because that's the type of Environment.CommandLine
. The same mistake is propagated on page 213, where I provide examples of using implicitly typed local variables for control structures, including this one:
foreach (var s in Environment.CommandLine)
I claim that s
is of type string
- but it would actually be of type char
because string
implements IEnumerable<char>
.
The fix to both of these problems is simple - just replace the troublesome calls to Environment.CommandLine
with Environment.GetCommandLineArgs()
which really does return a string[]
. The rest of the text is then accurate, and indeed it's the original meaning I intended.
P225, figure 8.3: Curious change in picture
In the published version of the book, the code in the foreach loop in figure 8.3 looks like this:
foreach (var person in family)
{
totleAge += person.Age;
}
Note the typo - totle
instead of total
. The really odd thing is, I don't know how that mistake came about. Every copy of the image that I can find has the correct variable name. In particular, it would have had a red squiggle underneath it in its current form. Very strange. Anyway, here's what it should look like: