[ Team LiB ] Previous Section Next Section

6.1 Using the operator Keyword

In C#, operators are static methods whose return values represent the result of an operation and whose parameters are the operands. When you create an operator for a class you say you have "overloaded" that operator, much as you might overload any member method. Thus, to overload the addition operator (+), you would write:

public static Fraction operator+(Fraction lhs, Fraction rhs)

It is my convention to name the parameters lhs and rhs. The parameter name lhs stands for "lefthand side" and reminds me that the first parameter represents the lefthand side of the operation. Similarly, rhs stands for "righthand side."

The C# syntax for overloading an operator is to write the word operator followed by the operator to overload. The operator keyword is a method modifier. Thus, to overload the addition operator (+), write operator+.

When you write:

Fraction theSum = firstFraction + secondFraction;

the overloaded + operator is invoked, with the first Fraction passed as the first argument, and the second Fraction passed as the second argument. When the compiler sees the expression:

firstFraction + secondFraction

it translates that expression into:

Fraction.operator+(firstFraction, secondFraction)

The result is that a new Fraction is returned, which in this case is assigned to the Fraction object named theSum.

C++ programmers take note: It is not possible to create nonstatic operators, and thus binary operators must take two operands.

    [ Team LiB ] Previous Section Next Section