Chapter 5. 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 goes on to discuss 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 ones for the benefit of new programmers and Visual Basic converts, and to shed light on some of the changes introduced with C#.

C# supports the operators listed in the following table, although four (sizeof, *, ->, and &) are only available in unsafe code (code that bypasses C#'s type safety checking), which is discussed in Chapter 7, "Memory Management and Pointers":

Category

Operator

Arithmetic

+ - * / %

Logical

& | ^ ~ && || !

String concatenation

+

Increment and decrement

++ --

Bit shifting

<< >>

Comparison

== != < > <= >=

Assignment

= += -= *= /= %= &= |= ^= <<= >>=

Member access (for objects and ...

Get Professional C# 2005 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.