The purpose of this chapter was to provide you with additional weapons for your utility belt. It aimed to provide you additional insight into lambda expressions as well as the new asynchronous programming model and iterators.
You learned what lambda expressions are and how you can use them to provide cleaner and more efficient code. You also learned how they can be beneficial for use as event handlers and when working with LINQ.
The new and highly anticipated asynchronous programming model, lead by Async and Await, was also introduced. You experimented and explored how this new model could be used to quickly and easily develop asynchronous applications and cleaner code without the usual headache. Asynchronous programming no longer needs to be scary.
The chapter concluded by diving into iterators. While iterating over a collection is not new, you have now learned how iterators can allow you to make the process less cumbersome as well and more customizable.
You should have also learned how each of the topics covered by this chapter could easily reach into any of the other chapters and influence them in some manner. These features have endless uses, so feel free to experiment with them.
Anytime you write code you are inevitably going to be confronted with an error or some unforeseen results. The next chapter provides you information on how to appropriately handle errors and steps for debugging your application.