23-09-2006, 19:35
|
|
|
|
חבר מתאריך: 22.09.06
הודעות: 83
|
|
ציטוט:
במקור נכתב על ידי ם_O
זה נכון של name property יש SET, אבל הוא לא משנה את השם של האובייקט בקוד שלך, שם הוא תמיד יהיה סטטי. תנסה סתם לפתוח טופס בשם this ותעשה את זה:
קוד:
this.name = "bla";
this.text=this.name;
אז דבר ראשון אתה רואה שהשם לא משתנה. אתה עדיין פונה אליו כ this
עכשיו נסה להוסיף bla.text=bla.name; זה יגיד לך שbla לא קיים בכלל בקונטקסט. אבל הname של this באמת ישתנה לbla,אני סבור שזה לא מה שהוא רצה
בכל אופן זה שמיש בערך כמו לשנות לו את ה tag ......
|
הייתי צריך לקרוא מספר פעמים את ההודעה שלך בשביל להבין למה בדיוק התכוונת, ולטעות הקטסטרופלית הזאת..
בכל מקרה... יכול להיות שאני לא הבנתי את השאלה הראשונה, אבל מן הסתם שאי אפשר לשנות את השם של האינסטנס, מה גם שאני לא רואה אף סיבה שמישהו באמת ירצה לעשות את זה
אפשר להחשיב את הפרופרטי Name בתור חלק מה metadata של האובייקט הזה.
בד"כ כשיוצרים אובייקט, נוהגים להוסיף לו metadata ע"פ הצרכים שלך, זה יכול להיות הגרסה של האובייקט, איזשהו timestamp, שם, או מה לא.. כל מה שאתה רוצה שיתאר את האובייקט.
כשאתה גורר איזשהו פקד לתוך הטופס שלך, ונותן לשם כלשהו, אז הסטודיו יעשה 2 דברים. הדברים הראשון זה יהיה ליצור אינסטנס עם השם הזה, ודבר שני זה להוסיף לו metadata שיתאר אותו,
משהו כזה
קוד:
Button myButton = new Button();
myButton.Name = "myButton";
בשביל מה זה טוב? תחשוב על מקרה כזה:
קוד:
object someButton;
Button btn = (Button)someButton;
string myButtonName = btn.Name
_____________________________________
|