In this chapter, we continued our exploration of expressions, this time focused on types and objects. First, we focused on different ways to carry out type checks, convert between types, and so on.
After discussing the creation of object instances, we explored how to access members, call methods, and delegates and perform element accesses. Delegates receive much more attention in Chapter 17, so we skimmed over some of the details here. Nonetheless, you have become familiar with different syntaxes to create delegates, including anonymous methods and lambda expressions.
Expressions are all about computing values. But a life of computation is not sufficient for the imperative code programmer; control flow mechanisms, such as conditional ...