In this chapter, we explored one of the key sources of expressiveness in the C# programming language no developer can live without: expressions. After covering the role of expressions and the runtime’s evaluation stack, we covered one particular set of expressions; namely, operators.
The discussion of operators brought you to arithmetic operators and aspects of overflow checking using the
unchecked keywords. Use of floating-point arithmetic was explained, as well, focusing on implications of limited precision. Next, you looked at other kinds of operators, such as relation and logical ones. The conditional operator (commonly referred to as the ternary operator) was covered too, pointing out its lazy evaluation of operands. ...