Monday 10 April 2017

Operator overloading in C#

Before looking at the implementation details, lets see what are the conventions that need to be followed if we want to overload an operator.
  • The operator function should be a member function of the containing type.
  • The operator function must be static.
  • The operator function must have the keyword operator followed by the operator to be overridden.
  • The arguments of the function are the operands.
  • The return value of the function is the result of the operation.
So to understand the above mentioned points more clearly we can visualize the operators getting invoked as function calls (below code will not compile, it is only for understanding purpose).
class A
{
    public static A operator+(A a1, A a2)
    {
        A temp;
        // perform actual addition
        return temp;
    }
}

// so the operations like 
A a1 = new A();
A a2 = new A();

A result = a1 + a2;

// This can actually be visialized as:
A result = A.+(a1, a2);
// Note: Only for understnading, this wont even compile

No comments:

Post a Comment