Chapter 6. Operator Overloading
It
is a design goal of C# that user-defined classes have all the
functionality of built-in types. For example, suppose you have
defined a type to represent fractions. Ensuring that this class has
all the functionality of the built-in types means that you must be
able to perform arithmetic on instances of your fractions (e.g., add
two fractions, multiply, etc.) and convert fractions to and from
built-in types such as integer (int). You could,
of course, implement methods for each of these operations and invoke
them by writing statements such as:
Fraction theSum = firstFraction.Add(secondFraction);
Although this will work, it is ugly and not how the built-in types
are used. It would be much better to write:
Fraction theSum = firstFraction + secondFraction;
Statements like this are intuitive and consistent with how built-in
types, such as int, are added.
In this chapter, you will learn techniques for adding standard
operators to your user-defined types. You will also learn how to add
conversion operators so that your user-defined types can be
implicitly and explicitly converted to other types.
|