overload کردن یعنی چی؟ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

overload کردن یعنی چی؟

+1 امتیاز

با  سلام ,

overload کردن یعنی چی و چطور باید باهاش کار کنیم؟ ممنون

سوال شده اسفند 23, 1392  بوسیله ی daniyaltjm (امتیاز 840)   47 88 103

1 پاسخ

+4 امتیاز
 
بهترین پاسخ

overload کردن یعنی این که چند تا تابع با اسم یکسان بنویسیم ولی با ورودی های متفاوت

مثلا فرض کنید داخل برنامتون می خواهید داخل کاربر ها جست و جو کنین . خب جست و جو می تونه به شکل های متفاوت باشه مثلا فقط با آیدی جست و جو بشه یا این که فقط با اسم و فامیل یا فقط با اسم و ... این جور جاها از overload استفاده می کنن .

void searchUser(int id,String name,String lastName)
void searchUser(String name)
void searchUser(String name,String lastName)
....

 

پاسخ داده شده اسفند 23, 1392 بوسیله ی PSPCoder (امتیاز 1,301)   14 40 57
انتخاب شد اسفند 23, 1392 بوسیله ی daniyaltjm
پس در واقع یک جور فیلتر کردن استفاده از متد هست؟ و توی متد های خود سی شارپ هم به همین صورت هست؟ مثلا بعضی متد ها اصلا اورلود نمیشن و خطا میدن؟
بله مثل فیلتر میمونه .
آره اون متد ها هم به همین شکل هستند البته احتمالا دلیل این که ارور میدن اینه که سعی کردین یک متغیر رو با همون ورودی overload کنین که اشتباه هستش
همون جوری که گفتم زمان overload حتما باید پارامتر های ورودی فرق کنن مثلا توی کد زیر با این که مقداری که return میشه فرق می کنه ولی بازم کد ارور میده چون پارامتر های ورودی یکسانند.
void searchUser(string name)
int searchUser(string name)

در ضمن یک نکته هم هست این که : زمانی که از یک کلاس ارث می برین و یک متد رو دوباره می نویسین بهش overload دیگه نمی گن به اون override میگن .
...