PDA

View Full Version : استفاده از پارامترهای نا محدود



hassan razavi
سه شنبه 10 مهر 1386, 12:56 عصر
سلام دوستان
برای پیاده سازی یک متد که تعداد پارامترهای داینامیکی داشته باشه چه راه هایی رو پیشتهاد میکنید؟
این پارامترها از نوع های مختلف می تونند باشن و اصلا تعدادشون محدود نباشه.
منظورم از طریق Override نیست.

Mahdi.Kiani
سه شنبه 10 مهر 1386, 13:30 عصر
سلام دوستان
برای پیاده سازی یک متد که تعداد پارامترهای داینامیکی داشته باشه چه راه هایی رو پیشتهاد میکنید؟
این پارامترها از نوع های مختلف می تونند باشن و اصلا تعدادشون محدود نباشه.
منظورم از طریق Override نیست.


استفاده ازکلمه کلیدی Params در متد ها

فرض کنید متدی میخواین بنویسین که هر تعداد آرگومانی را که میخواین بفرستین به متد و اون متد حاصل جمع آن را براتون برگردونه

متد را به این شکل بنویسین




private int sum(params int[] values)
{
int result = 0;
foreach (int number in values)
{
result += number;
}

return result;
}




و موقع فراخوانی هم به این شکل



int test1 = sum(1, 1, 1);
int test2 = sum(2, 5, 14, 15, 18, 25);
int test3 = sum(100, 200, 300, 400, 500, 600);


موقع فراخوانی باید بعد از هرآرگومان کاما بذارین


Params را باید با آرایه ها بکار ببرین
پس نوشتن متد به صورت زیر غلطه




private int sum(params int values)
{
int result = 0;
foreach (int number in values)
{
result += number;
}

return result;
}




حالا اگه نوع آرگومان هاتون هم مشخص نیست کافیه به جای Int از object استفاده کنین
اینطوری




private int unlimitiedMethod(params object[] values)
{

// code for handle Method
}



البته در مورد استفاده کردن از object باید مراقب باشین چون هر نوعی را قبول میکنه
پس توی پیاده سازی متد حواستون جمع باشه
موفق باشین