Operator Overloading in C#

In this article I will explain the concept of operator overloading in C#.
  • 2614

Introduction

The concept of Polymorphism is very simple in C#. Operator overloading is a form of Polymorphism. Operator overloading means giving ability to normal operators when they are applied to user defined data type. All c# binary operator and unary operator can be overloaded such as +, -, *, /, !, ++. Operator overloading is use a special function called operator function for overloading purpose in C#. The function must be public or static. The Syntax of operator overloading is follow

syntax

return-data-type operator symbol-of-operator (parameters)

{

//body of the function

}

 

Example

 

using System;

using System.Collections.Generic;

using System.Text;

namespace OperatorOvrloadingApplication

{

    class Box

    {

        private double length;      // Length of a box

        private double breadth;     // Breadth of a box

        private double height;      // Height of a box

        public double showVolume()

        {

            return length * breadth * height;

        }

        public void setLength(double len)

        {

            length = len;

        } 

        public void setBreadth(double bre)

        {

            breadth = bre;

        }

        public void setHeight(double hei)

        {

            height = hei;

        }

        // Overload + operator to add two Box objects.

        public static Box operator +(Box b, Box c)

        {

            Box box = new Box();

            box.length = b.length + c.length;

            box.breadth = b.breadth + c.breadth;

            box.height = b.height + c.height;

            return box;

        }

    }

    class calculate

    {

        static void Main(string[] args)

        {

            Box Box1 = new Box();         // Declare Box1 of type Box

            Box Box2 = new Box();         // Declare Box2 of type Box

            Box Box3 = new Box();         // Declare Box3 of type Box

            double volume = 0.0;    // Store the volume of a box here

            // box 1 specification

            Box1.setLength(1.0);

            Box1.setBreadth(2.0);

            Box1.setHeight(3.0);

            // box 2 specification

            Box2.setLength(4.0);

            Box2.setBreadth(5.0);

            Box2.setHeight(6.0);

            // volume of box 1

            volume = Box1.showVolume();

            Console.WriteLine("Volume of Box1 : {0}", volume);

            // volume of box 2

            volume = Box2.showVolume();

            Console.WriteLine("Volume of Box2 : {0}", volume);

            // Add two object as follows:

            Box3 = Box1 + Box2;

           // volume of box 3

            volume = Box3.showVolume();

            Console.WriteLine("Volume of Box3 : {0}", volume);

            Console.ReadKey();

        }

    }

}

 

The output of following program

 

Clipboard175.jpg

© 2019 DotNetHeaven. All rights reserved.