C# in Depth, Third Edition Errata

本书为C#深入浅出第三版的勘误列表,修正了书中多个章节的错误,包括代码格式、年龄数据不一致、注释错误等,并提供了正确的代码示例和解释。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C# in Depth, Third Edition Errata 

from https://manning-content.s3.amazonaws.com/download/1/ba5e279-90f8-444b-9a39-14fc4a4790bd/Skeet_CsharpinDepth_Err2.html 

Thank you for purchasing C# in Depth, Third Edition. Please post any errors, other than those listed below, in the book's Author Online Forum. We'll compile a comprehensive list and publish it here for everyone's convenience. Thank you!

Last updated January 8, 2015

Page 22, Listing 1.21:

The formatting in listing 1.21 is fine until the last line of page 22. The closing brace should be outdented. The productCheckButton.Enabled = true; line should be indented. The code will execute; it's just not pleasant to look at.

Page 23, Section 1.6:

Directly after Listing 1.21, I state that "The full method is a little longer than the one shown in Listing 1.22;" I meant Listing 1.21.

Page 53, Listing 2.6:

Eagle-eyed readers may have noticed that in Listing 2.6, I claim to be 31 years old, whereas in later listings throughout the book I'm 36 or 37. Sad to say, it's the latter, which was correct as the third edition went to print. I was born in June 1976. These days I can barely remember what it was like to be 31.

In fact, this was a problem in the second edition as well. It seems that chapter 2 is a chapter of eternal youth, basically. All the code works, it's just the data is inconsistent between editions.

This actually raises an interesting point about storing time-sensitive data: always try to store a fixed reference point rather than a dynamic value. If I'd had a DateOfBirth property instead of an Age property, nothing would have needed updating between editions. That's what I'd have done for real code, but Age = 37is a good deal shorter than DateOfBirth = new DateTime(1976, 6, 19) even leaving aside the thorny issue of how suitable DateTime is for storing a date.

Page 98, Listing 3.14:

The second annotation in Listing 3.14 is "Uses implicit conversions to call comparer" (the same as the third annotation). It should be:

Remembers original comparer

Page 119, section 4.3.3:

The list of overloadable operators includes truefalse. This should be true false (two different operators).

Page 222, Listing 8.8:

Listing 8.3 currently includes the following:

new Person("Alice"),
{
    Age = 9,
    Home = { Town = "Twyford", Country = "UK" }
}

The comma after the constructor call needs to be removed, as follows:

new Person("Alice")
{
    Age = 9,
    Home = { Town = "Twyford", Country = "UK" }
}

Page 346, Section 12.3.1:

When describing XText, the book states:

XText is rarely instantiated directly in user code; instead, when a string is used as the content of an element or document, that's converted into an XText instance.

That's somewhat misleading, as it ignores all the other conversions that implicitly create XText nodes. Basically, any time you create text within an element, it will be a form of XText. For example, consider this code:

new XElement("x", 0)

This creates this XML:

<x>0</x>

The 0 has been specified as an integer literal, but in the object tree there's still an XText object, as you can tell by calling element.Nodes().First().GetType().

Page 406, Section 13.4.1:

I mistakenly have a call to Monitor.Release in the final block. That method doesn't actually exist; it should be a call to Monitor.Exit, as it was in the previous listing.

Page 473, Section 15.3.2:

The text after the list at the start of the section is as follows:

The difference between the two is essentially that Task<TResult> represents an operation that returns a value of type [...]

The should be TResult: 

The difference between the two is essentially that Task<TResult> represents an operation that returns a value of type TResult [...]

Page 503, Section 15.5.6:

The last line of the listing on page 502 has a comment of // Bold at the end. That was an instruction to make the line bold, rather than a normal C# comment. Unfortunately, it wasn't picked up during layout.

Page 505, Section 15.6.1:

There's a note I left to the Manning production department:

// NOTE TO PRODUCTION: Please consult with Jon on formatting. Do not abbreviate!

Obviously this shouldn't have appeared in the final copy. Sorry about that!

Page 511, Section 15.6.2:

After Listing 15.13, there's a sentence missing a space:

There are two slight issues with Listing15.13:

This should be:

There are two slight issues with Listing 15.13:

Page 522, Listing 16.3:

The body of the attribute constructor (Member = member;) should be indented.

Page 522:

After Listing 16.4, I accidentally refer to Listing 16.3 while giving the output of listing 16.4:

Listing 16.3 just prints Called by: Unknown as if the output weren't present.

Should be:

Listing 16.4 just prints Called by: Unknown as if the output weren't present.

转载于:https://www.cnblogs.com/tthua/p/10540849.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值