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
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.