PDA

View Full Version : نسبت دادن دو نوع شی ء به یک متغیر



bachemosbat
شنبه 09 مهر 1384, 16:50 عصر
چگونه می توان یک متغیر تعریف کرد که هم تکست باکس و هم کامبو باکس را بتوان به آن نسبت داد. و از Property های SelectionText,SelectionLenght به ازای هر کدام از دو نوع شی ء با یک متغیر استفاده کرد.

مطهر
شنبه 09 مهر 1384, 17:35 عصر
دقیقاً متوجه نشدم ولی شاید منظورت این باشه که SelectionText,SelectionLenght را در یک متغیر بتونی ذخیره کنی ؟

object obj=new object();
obj=textBox1.SelectionLength;
int i=(int)obj;
obj=textBox1.SelectedText;
string str=(string)obj;
کمی واضحتر سوالت را بیان کن

bachemosbat
شنبه 09 مهر 1384, 22:08 عصر
نه منظورم اینه که مثلا اینطور تعریف کنم:
object obj;
obj=textbox1;
MessageBox.Show(obj.SelectedText)
obj=combobox1;
MessageBox.Show(obj.SelectedText)
ولی این کد ارور می ده و نمی تونه SelectedText رو پیدا کنه.

مطهر
یک شنبه 10 مهر 1384, 22:53 عصر
object obj;
obj=textBox1;
MessageBox.Show(((TextBox)obj).SelectedText);
به این عبارت دقت کن

(TextBox)obj

aidinwashere
دوشنبه 11 مهر 1384, 01:52 صبح
اگر منظور مطهر رو نفهمیدید در مورد type casting بخونید

bachemosbat
دوشنبه 11 مهر 1384, 10:02 صبح
اینو بلدم ولی نمی خوام دوباره نوع اونو از Object تبدیل کنم به TextBox چون ممکنه در اون یا یک تکست باکس قرار بگیره یا کامبو باکس و من می خوام برای هر دو نوع شی ء یک کد بنویسم.

S.Azish
دوشنبه 11 مهر 1384, 14:21 عصر
از اونجایی که ایندو دو شی مختلف هستند و هیچ interface مشابهی ندارن پس نمیشه اونا رو به یک چیز واحد تبدیل کرد ولی میشه از reflection استفاده کرد



object target = null;

target = textBox1;

MessageBox.Show(target.GetType().GetProperty("SelectionLength").GetValue(target, null).ToString());

razavi_university
سه شنبه 12 مهر 1384, 09:47 صبح
سلام
فکر کنم با چند شکلی (Polimorphism) مشکل حل بشه

S.Azish
سه شنبه 12 مهر 1384, 14:26 عصر
از polymorphysm نمیشه اینجا استفاده کرد چرا که دو تا شی interface های شبیه به هم ندارن.

bachemosbat
چهارشنبه 13 مهر 1384, 06:33 صبح
ممنون از راهنماییتون