PDA

View Full Version : سوال: Ref + Params



spnuac
چهارشنبه 10 فروردین 1390, 10:23 صبح
ضمن خسته نباشید خدمت همه استاید .
همونطوری که می کدونید اگه بخواییم یک کنترل رو (مثل TextBox ) بفرستیم به یک تابع خارج از کلاس و مقدار اون رو تغییر بدیم می بایست از Ref استفاده کنیم . مثلا :

changevalue(ref textbox1);
.
.
.
public static void changevalue(ref TextBox a){
a.Text= "ali";
}


و می دونید که اگر قصد داشته باشیم تابع مقصد تعداد پارامتر نامشخصی رو بگیره از params استفاده می کنیم . مثلا :

public static void test(params object[] parameter){
// do...
}
.
.
.
1- test("ali","mohamad");
2-test("reza");
3- test("ali","mohamad","reza",.........,"amin");


* حالا سوال من این هست که هر دو اینها رو بصورت همزمان من چطوری می تونم انجام بدم یعنی یک سری TextBox( مه تعدادشون هم معلوم نیست ) رو بفرستم به تابع و مثلا خاصبت Text اونها رو تغییر بدم و این تغییر بروی خود TextBox ها اعمال بشه؟
کد زیر می دونم غلط هست اما یه چیزی شبیه به این می خوام :

public static void changevalue(params ref TextBox[] parameter){
//...
}
.
.
.
1-changevalue(TextBox1);
2-changevalue(TextBox1,TextBox2);
3-changevalue(TextBox1,TextBox2,TextBox3,...,TextBox N);

Directx
چهارشنبه 10 فروردین 1390, 11:05 صبح
خوب دوست عزیز اینجا کلمه ref اضافست یعنی کافیه که params رو اول آرایه بیارید

spnuac
چهارشنبه 10 فروردین 1390, 11:12 صبح
خوب اونوموقع تغییرات بروی TextBox ها اعمال نمیشه عزیز ، فقط به مقادیر اونها میشه دسترسی پیدا کرد

Directx
چهارشنبه 10 فروردین 1390, 11:18 صبح
امتحان کردین یا همینجوری می گین ؟ البته من خودم امتحان نکردم ولی معمولا prams رو همراه یه آرایه میارید تو تابع فک کنم با پارامتر های ارسالی مثل یه آرایه رفتار می شه یعنی آدرس اون ها رو می گیره اجازه بدید امتحان کنیم اگه بخایید نمونه کد میزارم (اگه جواب داد)

spnuac
چهارشنبه 10 فروردین 1390, 11:50 صبح
ایراد از کد من بود به یه نحو دیگه کد نویسی کردم درست شد ، فرمایش شما درست بود . الکی تاپیک زدم . عذر می خوام :گریه: