آموزش متد overloading (سربارگذاری) در سی شارپ

رتبه: 0 ار 0 رای sssss
سی شارپ
نویسنده: میلاد حیدری زمان مطالعه 3 دقیقه
Banner Image

بسیاری از زبانهای برنامه نویسی از تکنیکی بنام پارامترهای پیش فرض / اختیاری پشتیبانی می کنند. این تکنیک برنامه نویس را قادر می سازد با دادن یک مقدار پیش فرض به یک یا چند پارامتر، آنها را به پارامترهای اختیاری تبدیل کند. این کار؛ خصوصاً هنگام افزودن قابلیت اضافی به کدهای موجود بسیار است.

به عنوان مثال، ممکن است بخواهید عملکردی را به یک تابع موجود اضافه کنید، که نیاز دارد یک یا چند پارامتر به آن اضافه شود. با این کار، کد موجود را که این تابع را فراخوانی می کند؛ شکسته اید، زیرا آنها اکنون مقدار مورد نیاز پارامترها را عبور نمی دهند. برای انجام این کار ، می توانید پارامترهای جدید اضافه شده را به صورت اختیاری تعریف کنید و به آنها یک مقدار پیش فرض بدهید که مطابق با نحوه عملکرد کد قبل از اضافه کردن پارامترها می باشد.

پارامترهای پیش فرض در سی شارپ نسخه ۴٫۰ معرفی شده است ، اما تا آن زمان ، رمزگذارهای سی شارپ از تکنیک متفاوتی استفاده کرده اند، که اساساً همین کار را انجام می دهد و متد overloading نامیده می شود. این متد به برنامه نویس اجازه می دهد تا چندین متد با یک نام تعریف کند، در حالی که مجموعه متفاوتی از پارامترها را اتخاذ کند. هنگامی که از کلاس های چارچوب دات نت استفاده می کنید، به زودی متوجه خواهید شد که متد overloading در همه جا استفاده می شود. مثال خوبی از این روش Substring() کلاس String است. که مانند زیر یک overload اضافه دارد:

string Substring (int startIndex)

string Substring (int startIndex, int length)

می توانید آن را با یک یا دو پارامتر فراخوانی کنید. اگر فقط آن را با یک پارامتر فراخوانی کنید، فرض می شود که طول پارامتر، بقیه رشته باشد و در هر زمان که بخواهیم قسمت آخر یک رشته را بدست آوریم ، در وقت خود صرفه جویی می کنیم.

بنابراین ، با تعریف چندین نسخه از یک تابع مشابه، چگونه از داشتن یک کد مشابه در چندین مکان جلوگیری می کنیم؟ پاسخ در واقع کاملاً ساده است: ما به نسخه های ساده متد اجازه می دهیم نسخه پیچیده آن تمام کارها را انجام دهد. مثال زیر را در نظر بگیرید:

class SillyMath

{

public static int Plus(int number1, int number2)

{

return Plus(number1, number2, 0);

}

public static int Plus(int number1, int number2, int number3)

{

return number1 + number2 + number3;

}

}

ما یک روش Plus را در دو نسخه متفاوت تعریف می کنیم. نسخه اول برای اضافه کردن دو عدد، دو پارامتر اتخاذ می کند، در حالی که نسخه دوم سه عدد می گیرد. کار واقعی در نسخه ای انجام می شود که سه عدد می گیرد – اگر فقط می خواهیم دو عدد اضافه کنیم، نسخه سه پارامتری را فراخوانی می کنیم، و به سادگی از ۰ به عنوان پارامتر سوم استفاده می کنیم که به عنوان یک مقدار پیش فرض عمل می کند. همانطور که از نام کلاس مشخص شده است، می دانیم که این نمونه به طرز احمقانه ای ساده است، اما باید در مورد چگونگی عملکرد آن ایده ای به شما بدهد.

حال هر زمان که با افزودن چهار عدد ریاضی احساس کردید می خواهید ریاضیات پیشرفته انجام می دهید، اضافه یک overload جدید بسیار ساده است:

class SillyMath

{

public static int Plus(int number1, int number2)

{

return Plus(number1, number2, 0);

}

public static int Plus(int number1, int number2, int number3)

{

return Plus(number1, number2, number3, 0);

}

public static int Plus(int number1, int number2, int number3, int number4)

{

return number1 + number2 + number3 + number4;

}

}

نکته جالب در این مورد آن است که تمام فراخوانی های موجود شما به متد Plus به عملکرد ادامه خواهد داد؛ گویا چیزی تغییر نکرده است. هرچه که بیشتر از سی شارپ استفاده می کنید؛ بیشتر به کارآمدی متد overloading پی می برید.

profile name
میلاد حیدری

بخندید کتاب بخونید و خوب باشید تا جامعه مون به آرامش برسه. لطفا ! هر سوالی دارید در بخش نظرات مطرح کنید. ما یا سایر هموطنان عزیز پاسخ خواهیم داد. برای کمک به سایت ما و گسترش آموزش در بین هموطنان، در سایتها، وبلاگ ها و شبکه های اجتماعی لینک سایت ما را درج کنید.

مطالب پیشنهادی برای شما

محصولات مرتبط

مشاهده همه

دیدگاهتان را بنویسید

1 2 3 4 5

0 نظر درباره «آموزش متد overloading (سربارگذاری) در سی شارپ»

    هنوز نظری برای این بخش ثبت نشده است
مشاهده همه نظرات
سبد خرید
سبد خرید شما خالی است
× جهت نصب روی دکمه زیر در گوشی کلیک نمائید
آی او اس
سپس در مرحله بعد برروی دکمه "Add To Home Screen" کلیک نمائید