প্রথমেই , জেনে রাখি , মেথোড আর ফাংশন কিন্তু একই জিনিস , অনেকেই আবার এই দুটিকে আলাদা মনে করে , এরা আলাদা কিছু নয় , ফাংশন ওভারলোডিং আর মেথোড ওভারলোডিং একই জিনিস ।। আজকে আমরা , মেথোড ওভারলোডিং নিয়ে কথা বলবো --------------------
তার আগেই , জেনে নেই Signature of Method কি ??
একটি মেথোড এর কয়েকটি প্রোপারটি কে Signature of Method বলে ।।
১) মেথোডের নাম ।।
২) মেথোডের প্যারামিটার এর মোট সংখ্যা ।।
৩) মেথোডের প্যারামিটারের এর ডেটাটাইপ ।।( ইন্টিজার , ফ্লোট , ডাবল , ইত্যাদি )
৪) মেথোডের প্যারামিটার এর প্রকার ( ভ্যালু প্যারামিটার , রেফারেন্স প্যারামিটার , আউটপুট প্যারামিটার) ।। [ বিঃদ্রঃ প্যারামস প্যারামিটার , কিন্তু এই ক্ষেত্রে এর মধ্যে খাটবে না ]
এখন আসো , আসল ঘটনায় আসি --- আমরা , একটা নরমাল মেথোড ক্রিয়েট করি খুবই সিম্পল ।।
using System;
class Program
{
public static void Main()
{
add(5, 6);
Console.ReadKey();
}
public static void add(int a,int b)
{
Console.WriteLine(a + b);
}
}
আমরা , add নামে একটা মেথোড ক্রিয়েট করেছি ।। আচ্ছা , এখন কি আমরা এই একই নামের আরেকটা মেথোড ক্রিয়েট করতে পারবো ?? কি মনে হয় , তোমার ????
হুম অবশ্যই পারবো , তবে দুই মেথোড এর নাম এক থাকলেও , দুইটি মেথোডের মধ্যে Signature -এ যেনো তফাত থাকে ।। চলো চলো এক এক করে দেখে আসি ----
মেথোডের প্যারামিটার এর মোট সংখ্যা ।। ( পার্থক্য )
using System;
class Program
{
public static void Main()
{
add(7, 3);
add(5, 6,8);
Console.ReadKey();
}
public static void add(int a,int b)
{
Console.WriteLine(a + b);
}
public static void add(int a,int b,int c)
{
Console.WriteLine(a + b + c);
}
}
মেথোডের প্যারামিটারের এর ডেটাটাইপ ( পার্থক্য )
using System;
class Program
{
public static void Main()
{
add(7, 3);
add(5.7, 6);
Console.ReadKey();
}
public static void add(int a,int b)
{
Console.WriteLine(a + b);
}
public static void add(double a,double b)
{
Console.WriteLine(a + b);
}
}
ঠিক অনুরুপভাবেই , একই মেথোড নাম হলেও - প্যারামিটার এর কাইন্ড চেইঞ্জ করে একাধিক মেথোড কল করতে পারবা ।। কিন্তু , যদিও প্যারামস এক ধরণের প্যারামিটার তারপরো - এই ক্ষেত্রে ইউজ করতে পারবা না ।।
তো , একই নামের বিভিন্ন মেথোড কল করার নামই মেথোড ওভারলোডিং ।। আচ্ছা , অনেকের মাথায় আবার একটা চালাকি বুদ্ধি আসতে পারে যে -- একই নামের মেথোড ইউজ করবো ভিন্ন রিটার্ন টাইপ দিয়ে , তাই তো ওভারলোডিং করতে পারবো ।। আসলেই কি হবে ????
না , এরকম কখনোই হবে না ।। শুধু মাত্র Signature Of Method ভিন্ন করেই মেথোড ওভারলোডিং করতে পারবা ।। যাই হোক , আশা করি এইসব মেথোড ওভারলোডিং এর মতো সহজ জিনিস নিয়ে আর ঘাটাঘাটি করতে হবে না ।। আজ এইটুকুই -------------------------
তার আগেই , জেনে নেই Signature of Method কি ??
একটি মেথোড এর কয়েকটি প্রোপারটি কে Signature of Method বলে ।।
১) মেথোডের নাম ।।
২) মেথোডের প্যারামিটার এর মোট সংখ্যা ।।
৩) মেথোডের প্যারামিটারের এর ডেটাটাইপ ।।( ইন্টিজার , ফ্লোট , ডাবল , ইত্যাদি )
৪) মেথোডের প্যারামিটার এর প্রকার ( ভ্যালু প্যারামিটার , রেফারেন্স প্যারামিটার , আউটপুট প্যারামিটার) ।। [ বিঃদ্রঃ প্যারামস প্যারামিটার , কিন্তু এই ক্ষেত্রে এর মধ্যে খাটবে না ]
এখন আসো , আসল ঘটনায় আসি --- আমরা , একটা নরমাল মেথোড ক্রিয়েট করি খুবই সিম্পল ।।
using System;
class Program
{
public static void Main()
{
add(5, 6);
Console.ReadKey();
}
public static void add(int a,int b)
{
Console.WriteLine(a + b);
}
}
আমরা , add নামে একটা মেথোড ক্রিয়েট করেছি ।। আচ্ছা , এখন কি আমরা এই একই নামের আরেকটা মেথোড ক্রিয়েট করতে পারবো ?? কি মনে হয় , তোমার ????
হুম অবশ্যই পারবো , তবে দুই মেথোড এর নাম এক থাকলেও , দুইটি মেথোডের মধ্যে Signature -এ যেনো তফাত থাকে ।। চলো চলো এক এক করে দেখে আসি ----
মেথোডের প্যারামিটার এর মোট সংখ্যা ।। ( পার্থক্য )
using System;
class Program
{
public static void Main()
{
add(7, 3);
add(5, 6,8);
Console.ReadKey();
}
public static void add(int a,int b)
{
Console.WriteLine(a + b);
}
public static void add(int a,int b,int c)
{
Console.WriteLine(a + b + c);
}
}
মেথোডের প্যারামিটারের এর ডেটাটাইপ ( পার্থক্য )
using System;
class Program
{
public static void Main()
{
add(7, 3);
add(5.7, 6);
Console.ReadKey();
}
public static void add(int a,int b)
{
Console.WriteLine(a + b);
}
public static void add(double a,double b)
{
Console.WriteLine(a + b);
}
}
ঠিক অনুরুপভাবেই , একই মেথোড নাম হলেও - প্যারামিটার এর কাইন্ড চেইঞ্জ করে একাধিক মেথোড কল করতে পারবা ।। কিন্তু , যদিও প্যারামস এক ধরণের প্যারামিটার তারপরো - এই ক্ষেত্রে ইউজ করতে পারবা না ।।
তো , একই নামের বিভিন্ন মেথোড কল করার নামই মেথোড ওভারলোডিং ।। আচ্ছা , অনেকের মাথায় আবার একটা চালাকি বুদ্ধি আসতে পারে যে -- একই নামের মেথোড ইউজ করবো ভিন্ন রিটার্ন টাইপ দিয়ে , তাই তো ওভারলোডিং করতে পারবো ।। আসলেই কি হবে ????
না , এরকম কখনোই হবে না ।। শুধু মাত্র Signature Of Method ভিন্ন করেই মেথোড ওভারলোডিং করতে পারবা ।। যাই হোক , আশা করি এইসব মেথোড ওভারলোডিং এর মতো সহজ জিনিস নিয়ে আর ঘাটাঘাটি করতে হবে না ।। আজ এইটুকুই -------------------------
No comments:
Post a Comment