The changing face of C♯ development -- Core foundations : building on C♯ 1 -- Parameterized typing with generics -- Sayuing nothing with nullable types -- Fast-tracked delegates -- Implementing iterators the easy way -- Concluding C♯ 2 : the final features -- Cutting fluff with a smart compiler -- Lambda expressions and expression trees -- Extension methods -- Query expressions and LINQ to objects -- LINQ beyond collections -- Minor changes to simplify code -- Dynamic binding in a static language -- Asynchrony with async/await -- C♯ 5 bonus features and closing thoughts.