C# 3.0 introduces a number of new language features such as query expressions, lambda expressions, extension methods, automatically implemented properties, local type inference and more. These are all features that can really improve the quality of your code. They also give you new ways of doing things wrong. This talk focuses on both the good and the bad: how to use and how not to use the new features of C#. Each feature is introduced with a small example, and you should be able to follow the talk even if you are not already familiar with the new language constructs.