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
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":
Increment and decrement
Member access (for objects and ...