Chapter 7. Operators and Casts

WHAT'S IN THIS CHAPTER?

  • Operators in C#

  • The idea of equality when dealing with reference and value types

  • Data conversion between primitive data types

  • Converting value types to reference types using boxing

  • Converting between reference types by casting

  • Overloading the standard operators for custom types

  • Adding cast operators to custom types

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 illustrates some powerful aspects of C# that allow you to extend the capabilities of the C# language.

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, and sheds 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 and removal (discussed in Chapter 8, "Delegates, Lambdas, and Events")

+ -

Object creation

new

Type information

sizeof is typeof as

Overflow exception control

checked unchecked

Indirection and address

[]

Namespace alias qualifier ...

Get Professional C# 4 and .NET 4 now with O’Reilly online learning.

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