Home | | C Sharp and .NET Framework(CNF) | C# Operator Overloading

Chapter: C# and .NET Framework

C# Operator Overloading

You can redefine or overload most of the built-in operators available in C#.

OPERATOR OVERLOADING

You can redefine or overload most of the built-in operators available in C#.

 

·       Thus a programmer can use operators with user-defined types as well. Overloaded operators are functions with special names the keyword operator followed by the symbol for the operator being defined.

 

·       Similar to any other function, an overloaded operator has a return type and a parameter list.

 

 

For example, go through the following function: 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;

 

}

 

The above function implements the addition operator (+) for a user-defined class Box. It adds the attributes of two Box objects and returns the resultant Box object.

 

Implementing the Operator Overloading

 

The following program shows the complete implementation: using System;

 

namespace OperatorOvlApplication

{

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 getVolume()

{

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 Tester

{

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(6.0); Box1.setBreadth(7.0); Box1.setHeight(5.0);

 

//  box 2 specification Box2.setLength(12.0); Box2.setBreadth(13.0); Box2.setHeight(10.0);

 

//  volume of box 1

 

volume = Box1.getVolume(); Console.WriteLine("Volume of Box1 : {0}", volume); // volume of box 2

 

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

 

//  Add two object as follows: Box3 = Box1 + Box2;

//  volume of box 3

 

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

 

}

}

 

}

 

When the above code is compiled and executed, it produces the following result: Volume of Box1 : 210

 

Volume of Box2 : 1560

Volume of Box3 : 5400

9. Method Overloading

 

·        The process of creating more than one method in a class with same name or creating a method in derived class with same name as a method in base class is called as method overloading.

 

·        In VB.net when you are overloading a method of the base class in derived class, then you must use the keyword ―Overloads‖.

 

 

·        But in C# no need to use any keyword while overloading a method either in same class or in derived class.

 

·        While overloading methods, a rule to follow is the overloaded methods must differ either in number of arguments they take or the data type of at least one argument.

 

Example for Method Overloading using System;

 

namespace ProgramCall

{

class Class1

{

public int Sum(int A, int B)

{

return A + B;

 

}

public float Sum(int A, float B)

{

return A + B;

}

}

class Class2 : Class1

{

public int Sum(int A, int B, int C)

{

return A + B + C;

}

}

class MainClass

{

static void Main()

{

 

Class2 obj = new Class2(); Console.WriteLine(obj.Sum(10, 20)); Console.WriteLine(obj.Sum(10, 15.70f)); Console.WriteLine(obj.Sum(10, 20, 30)); Console.Read();

}

 

}

 

}

 

Output 30 25.7 60

 

Study Material, Lecturing Notes, Assignment, Reference, Wiki description explanation, brief detail
C# and .NET Framework : C# Operator Overloading |


Privacy Policy, Terms and Conditions, DMCA Policy and Compliant

Copyright © 2018-2024 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.