最近在重新温习C#,跟人借了一套书,书是清华正版,而且是第五版。
一开始只是随手用铅笔修改一下,后来发现里面问题多多,我竟然看不懂源代码了,这叫初学者怎么读?真是毁人不倦啊。记得小时候买本书或者字典,都会夹带一张勘误表,现在的出版社懒的要命,都不知道出勘误表了。
我决定在阅读的过程中一点点将严重错误发出来,希望出版社能在下一版修改错误。
第五版 第10章 集合
page 282
原文:
public void Add(TKey key, TValue value)
{
List<TValue> list;
if (dict.TryGetValue(key, out list))
{
list.Add(value);
}
else
{
list = new List<TValue>();
newList.Add(value);
dict.Add(key, list);
}
}
源代码:
public void Add(TKey key, TValue value)
{
List<TValue> list;
if (dict.TryGetValue(key, out list))
{
list.Add(value);
}
else
{
List<TValue> newList = new List<TValue>();
newList.Add(value);
dict.Add(key, newList);
}
}
这段代码在第6版中消失。大概是因为Lookup类出现了。
英文原版“Wrox.Professional.C.Sharp.2005.with.dot.NET.3.0.Jun.2007.chm”也有此问题,看来此问题出自英文版。下载点参考勘误三。