পদ্ধতি ওভারলোডিংয়ের সাথে, একই সুযোগে একই ফাংশনের নামের জন্য আপনার একাধিক সংজ্ঞা থাকতে পারে। ফাংশনের সংজ্ঞাটি আর্গুমেন্ট তালিকার প্রকার এবং/অথবা আর্গুমেন্টের সংখ্যা দ্বারা একে অপরের থেকে আলাদা হতে হবে।
আসুন একটি উদাহরণ দেখি। এতে কল একটি একক প্যারামিটার সহ পদ্ধতিতে যাবে −
উদাহরণ
using System; class Student { static void DisplayMarks(int marks1 = 90) { Console.WriteLine("Method with one parameter!"); } static void DisplayMarks(int marks1, int marks2 = 95) { Console.WriteLine("Method with two parameters!"); } static void Main() { DisplayMarks(97); } }
এখন দেখা যাক কি একটি অস্পষ্ট কল তৈরি করে। এখানে বিভ্রান্তি হল যে দ্বিতীয় পদ্ধতিতে ডিফল্ট হিসাবে দুটি আর্গুমেন্টের প্রয়োজন হবে, যেখানে প্রথম মেথিডটি ডিফল্ট হওয়ার জন্য একটি আর্গুমেন্ট প্রয়োজন। এটি অস্পষ্টতা তৈরি করে।
উদাহরণ
using System; class Student { static void DisplayMarks(int marks1 = 90, int marks2 = 80) { Console.WriteLine("Method with two parameters!"); } static void DisplayMarks(int marks1, int marks2 = 80, marks3 = 98) { Console.WriteLine("Method with three parameters!"); } static void Main() { DisplayMarks(80); } }