PDA

View Full Version : سوال: فرق این 3 تعریف شی در چیست ؟



babak1
سه شنبه 09 آذر 1389, 17:01 عصر
سلام :
فرق این 3 تعریف شی در چیست ؟ میشه دقیق توضیح بدین
textbox ObjTextBox = new textbox ()
textbox ObjTextbox
textbox ObjTextbox= (textbox) this.activecontrol

L u k e
سه شنبه 09 آذر 1389, 18:18 عصر
خوب اولی یه متغیر از نوع TextBox تبدیل می کنه و یک نوع داده ای Text باش توش می ریزه
دومیم همین کارو می کنه ولی توی متغیر چیزی نمی ریزی و null هست
سومی هم همین با این تفاوت که توش کنترل فعال فرم رو می ریزه
(textbox) هم برای تبدیل کردن یک شی یه TextBox ازش استفاده شده

ehsan3554
سه شنبه 09 آذر 1389, 18:53 عصر
دوست عزیز تعریف سوم شما کلیت نداره یعنی تعریف سوم یه شی از نوع کنترل رو تبدیل به تکس باکس می کنه و اگه رو فرم یه کنترل به غیر از تکس باکس فعال باشه اون قابل تبدیل به تکس باکس نبوده و برنامه error میده
بای

babak1
سه شنبه 09 آذر 1389, 19:56 عصر
دوست عزیز تعریف سوم شما کلیت نداره یعنی تعریف سوم یه شی از نوع کنترل رو تبدیل به تکس باکس می کنه و اگه رو فرم یه کنترل به غیر از تکس باکس فعال باشه اون قابل تبدیل به تکس باکس نبوده و برنامه error میده
بای
دوست عزیز چندتا سوال دارم :
1- چطور active control تعیین میشه ؟
2-اگر قرار باشه active control تکس باکس باشه دیگه چرا type cast می کنیم ؟
3- میشه بگید چه موقع باید به یک شی مقدار اولیه داد .مثلا وقتی می نویسم :
form1 Objform1
objform1.showdialog(); خطا دیده میشه. ولی
form1 Objform1= new form1();
Objform1.showdialog();
خطا نمی ده !!


با تشکر.

mahdi87_gh
سه شنبه 09 آذر 1389, 22:23 عصر
- چطور active control تعیین میشه ؟
هر جا که مکان نما قرار داشته باشه، اون کنترل به عنوان اکتیو ست میشه

اگر قرار باشه active control تکس باکس باشه دیگه چرا type cast می کنیم ؟
خاصیت ActiveControl از نوع Control هستش که درواقع تمامی کنترلها از اون ارث بری کرده اند. اما کنترلهای مختلف، خاصیت ها و متدهای متفاوتی دارند. لذا این تبدیل نوع لازم هستش

میشه بگید چه موقع باید به یک شی مقدار اولیه داد .مثلا وقتی می نویسم :
دوست عزیز هر جا بخوای از متغیری استفاده کنی، باید قبلش اونو مقداردهی کرده باشی، در غیر این صورت برنامه با خطا مواجه میشه. منظور از استفاده، assignment نیست

kamran00f
سه شنبه 09 آذر 1389, 23:23 عصر
]
textbox ObjTextBox = new textbox ()



تو این تعریف تو یه شیء جدید از نوع TextBox میسازی. یعنی یه تکست باکسی میسازی که از قبل وجود نداشته.



textbox ObjTextbox


تو این تعریف یه متغیر میسازی که این قابلیت رو داره که به یه تکست باکسی که قبلا ساخته شده اشاره کنه ولی در حال حاظر مقدارش null هست. یعنی به هیچی اشاره نمیکنه.



textbox ObjTextbox= (textbox) this.activecontrol
تو این تعریف هم مثل تعریف 2 یه متغیر ساخته میشه که میتونه به یه TextBox اشاره کنه و همون طوری که دوستمون توضیح داد کنترل فعلی اگر تکست باکس باشه متغیر ما به همین کنترل اشاره میکنه (تکست باکس جدیدی ساخت نمیشه) ولی اگه کلا متغیر انتخاب شده در فرم TextBox نباشه که هیچی Throw Exeption رخ میده!