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


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 ...

Get Professional C# 2008 now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.