View Full Version : متدی با پارامتر های نامحدود
gigil_Question
شنبه 18 مهر 1388, 17:12 عصر
سلام
چه طور میشه یه متدی نوشت که تعداد نامحدودی پارامتر بگیره ؟
مثل :
Console.WriteLine("{1} {2} {3} {4} {5} {6} {7} {8} {9} {10}",1,2,3,4,5,6,7,8,9,10)
smk311
شنبه 18 مهر 1388, 18:21 عصر
برای این کار می توانی از params در تعریف پارامترهای متد استفاده کنی
// cs_params.cs
using System;
public class MyClass
{
public static void UseParams(params int[] list)
{
for ( int i = 0 ; i < list.Length ; i++ )
Console.WriteLine(list[i]);
Console.WriteLine();
}
public static void UseParams2(params object[] list)
{
for ( int i = 0 ; i < list.Length ; i++ )
Console.WriteLine(list[i]);
Console.WriteLine();
}
public static void Main()
{
UseParams(1, 2, 3);
UseParams2(1, 'a', "test");
int[] myarray = new int[3] {10,11,12};
UseParams(myarray);
}
}
و خروجی اوون به شکل زیر خواهد بود
1
2
3
1
a
test
10
11
12
alireza_s_84
شنبه 18 مهر 1388, 18:21 عصر
سلام
چه طور میشه یه متدی نوشت که تعداد نامحدودی پارامتر بگیره ؟
مثل :
Console.WriteLine("{1} {2} {3} {4} {5} {6} {7} {8} {9} {10}",1,2,3,4,5,6,7,8,9,10)
سلام:
قبل از نوع پارامتر از کلمه کلیدی params استفاده کنید. به این ترتیب میتونید هر تعداد دلتون بخواد پارامتر به متد بفرستین.
مثال:
public void WriteNumber(params Int32[] numbers)
{
for (Int32 i = 0; i < numbers.Length; i++)
{
Response.Write(numbers[i].ToString() + "<br />");
}
}
برای داشتن پارامترهایی با انواع مختلف باید نوع پارامترتون object باشه و بعد جهت استفاده Cast کنید
موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.