Chapter 6
Operators and Casts
The preceding chapters have covered most of what you need to start writing useful programs using C#. This chapter completes the discussion of the essential language elements and begins to illustrate some powerful aspects of C# that allow you to extend the capabilities of the C# language. Specifically, this chapter discusses the following:
- The operators available in C#
- The idea of equality when dealing with reference and value types
- Data conversion between the primitive data types
- Converting value types to reference types using boxing
- Converting between reference types by casting
- Overloading the standard operators to support operations on the custom types you define
- Adding cast operators to the custom types you define to support seamless data type-conversions
Operators
Although most of C#’s operators should be familiar to C and C++ developers, this section discusses the most important operators for the benefit of new programmers and Visual Basic converts, as well as to shed light on some of the changes introduced with C#.
C# supports the operators listed in the following table.
Category | Operator |
Arithmetic | + - * / % |
Logical | & | ^ ~ && || ! |
String concatenation | + |
Increment and decrement | ++ -- |
Bit shifting | << >> |
Comparison | == != < > <= >= |
Assignment | = += -= *= /= %= &= |= ^= <<= >>= |
Member access (for objects and structs) | . |
Indexing (for arrays and indexers) | [] |
Cast | () |
Conditional (the ternary operator) | ?: |
Delegate concatenation ... |