Thus far, you’ve looked at the basics of programming with the .NET languages, including building objects and solving common coding issues with respect to looping, handling logic, and creating and consuming events. This section points out some additional elements that make the .NET languages special. Many of these items are not necessarily things you might use every day; however, they can provide you with additional skills when writing code and better understanding when reading it. The .NET language features covered here include the following:
Local type inference (also called implicit typing)
Object initializers
Collection initializers
Extension methods
Anonymous types
Lambda expressions
Partial methods
Language Integrated Query (LINQ)
Friend assemblies
XML language support
Unused event arguments
Automatically implemented properties
Implicit line continuation in VB
Work with dynamic language/objects
Covariance and contravariance
Intrinsic support for async operations
Type equivalence support