(שאלה מוזרה) למה הקוד עובד?

dan3330

New member
(שאלה מוזרה) למה הקוד עובד?

זהו חלק מתוך הקוד המלא שאמור ליצור שני פרמטרים- FirstName ו- LastName ולהגדיר לכל אחד מהם ערך אחר במאפיין Value. הקוד באמת מצליח לעשות זאת, למרות שאני לא מבין איך, כיוון שנראה שבחלק הראשון הקוד יוצר מופע של אובייקט מסוג OleDbParameter בשם param_obj, ואז הוא מגדיר את המאפיין Value שלו פעם אחת כ- tbxFirstName ואחר כך הוא משנה את ערך אותו המאפיין ל- tbxLastName (זה לא נראה כאילו הוא משנה את הערך של פרמטר אחר אלא זה נראה כאילו הוא משנה את הערך של מאפיין Value של אותו פרמטר בדיוק: param_obj):
dim param_obj as OleDbParameter param_obj = cmd_obj.Parameters.Add("@FirstName",OleDbType.Char) param_obj.Direction = ParameterDirection.Input param_obj.Value = tbxFirstName.Text <-- look at that param_obj = cmd_obj.Parameters.Add("@LastName",OleDbType.Char) param_obj.Direction = ParameterDirection.Input param_obj.Value = tbxLastName.Text <-- and look at that​
אשמח אם מישהו יוכל להסביר. כנראה שיש כאן משהו עקרוני שפספסתי. תודה! דן.
 
../images/Emo6.gif למה הוא עובד?! את זה עוד לא

שמעתי. קורה , לפעמים הקוד גם עובד ,אלה הם החיים.
 
לא רק שזה עובד זה גם תקין../images/Emo186.gif../images/Emo182.gif

זה קשור לפוינטרים וכתובות ,שלמעשה נסתרים והעלימו אותם מעינך, אתה קיבלת התייחסות BY REF לאובייקט פרמטר ועבדת עליו. ובשני אותו דבר שום דבר לא נמחק או נדרס ,כל אחד נתן לך התייחסות לאובייקט פרמטר אחר (כל אחד יש כתובת שונה בזיכרון) (זה עוד סיבה ללמוד C בהתחלה)
 

dan3330

New member
כלומר שזו התחכמות שאמורה לחסוך לי?

כלומר שזו התחכמות שאמורה לחסוך לי עבודה, למרות שהיא נראת מעוותת?
 

yuval k

New member
זו לא התחכמות...

זה פוינטר, שאתה משנה את הכתובת שהוא מצביע עליה - ולכן הוא ניגש כל פעם למקום אחר בזיכרון.
 
למעלה