ওভারলোডেড অপারেটরগুলো 스페সিয়াল নামवाले ফাংশন। operator কীওয়ার্ড থাকে এবং তারপর ওভারলোড করা অপারেটরটির সিম্বল। অন্য ফাংশনের মতো, একটি ওভারলোডেড অপারেটরের একটি রিটার্ন টাইপ এবং প্যারামিটার লিস্ট থাকে।
নিচের টেবিলে দেখানো হলো কোন অপারেটরগুলো ওভারলোড করা যায় এবং কোনগুলো না:
| Sr.No. | অপারেটর ও বিবরণ |
|---|---|
| 1 | +, -, !, ~, ++, -- এই ইউনারি অপারেটরগুলো এক অপারেন্ড নেয় এবং ওভারলোড করা যায়। |
| 2 | +, -, *, /, % এই বাইনারি অপারেটরগুলো দুই অপারেন্ড নেয় এবং ওভারলোড করা যায়। |
| 3 | ==, !=, <, >, <=, >= কম্পैरিজন অপারেটরগুলো ওভারলোড করা যায়। |
| 4 | &&, || কন্ডিশনাল লজিক্যাল অপারেটরগুলো সরাসরি ওভারলোড করা যায় না। |
| 5 | +=, -=, *=, /=, %= অ্যাসাইনমেন্ট অপারেটরগুলো ওভারলোড করা যায় না। |
| 6 | =, ., ?:, ->, new, is, sizeof, typeof এই অপারেটরগুলো ওভারলোড করা যায় না। |
ওভারলোডেড অপারেটর ডিফাইন করা হয়:
public static Box operator+ (Box b, Box c) { }
উদাহরণ
using System;
namespace OperatorOvlApplication {
class Box {
private double length;
private double breadth;
private double height;
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();
Box Box2 = new Box();
Box Box3 = new Box();
double volume = 0.0;
// 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();
}
}
}
আউটপুট
Volume of Box1 : 210 Volume of Box2 : 1560 Volume of Box3 : 5400