208349 (2) [Avatar] Offline
#1
It would be useful if each language feature in this appendix could refer to the main section that discusses it. For some of the newer language features (and even for older things that you're using for the first time, such as the dynamic keyword), this would be especially helpful.

In addition here's a typo -- In v13, on page 24, you say "For example, the generic equivalent of the .NET 1 Hashtable class is declared like this:
public class Dictionary<TKey, TValue>"

jon.skeet (482) [Avatar] Offline
#2
As it happens, I added section numbers to the appendix just about a week ago smilie

I'm not sure about the typo you reported in chapter 2 though. Dictionary<TKey, TValue> *is* the generic equivalent of the non-generic Hashtable class, just like List<T> is the generic equivalent of the non-generic ArrayList type.
208349 (2) [Avatar] Offline
#3
Apologies, my mistake. I'd totally forgotten (hey, it was introduced in .Net 1.0, wasn't it?) about the Hashtable class. I was probably thinking of HashSet.

BTW, you might find an article that I triggered way back when C# was known as COOL (which I assume you recall meant C-like Object Oriented Language). See https://www.theregister.co.uk/2000/09/12/official_microsofts_csharp_is_cool/