האם בC# אפשר לפנות לשם משתנה בעזרת משתנה אחר? - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

האם בC# אפשר לפנות לשם משתנה בעזרת משתנה אחר?


TheReaper

Recommended Posts

  • תגובות 36
  • נוצר
  • תגובה אחרונה

משתתפים בולטים בדיון

משתתפים בולטים בדיון

אני מקווה שהבנתי נכון את השאלה.

הכנס את כולם לאיזשהו Collection ע"י יצירת מתודה ארוכה אך מתאימה ומשם תוכל לגשת באיטרציה לכולם בקלות.

אתה יכול ליצור את האובייקטים בלולאת For ואז זה גם יהיה קצר יותר (במידה ויש קשר בין כל האובייקטים - שם דומה ומיקום יחסי דומה)

קישור לתוכן
שתף באתרים אחרים

אני אנסח שוב

יש לי לוח משחק שמורכב מpicturebox

יש לי 82 כאלה לכל אחד קוראים pictureboxXX מ1 עד 82

עכשיו אמור לקרות משהו כאשר לוחצים על כל אחד מהתמונות האלה (משהו שונה לפי על מה שהוא לחץ)

אז במקום ליצור 82 מתודות אני רוצה לדעת אם יש אפשרות לפנות אליהם עם משתנה (במקום הXX) במקום למשל להכניס את כולם למערך

קישור לתוכן
שתף באתרים אחרים

לא כל כך הבנתי למה אתה מתכוון, אבל אני אנסה לענות לך.

אולי מה שאתה צריך זה להוסיף לאבויקט הזה פונקציה אחת (שאצל כולם היא תהיה) שתקבל איזהשהו פרמטר ולפיו היא תדע לעבוד.

אבל אני לא בטוח שלזה אתה מתכוון.

אם גם לזה אתה לא מתכוון, ואתה לא יכול להסביר את עצמך טוב יותר, אולי פשוט תפרסם כאן את הקוד שלך.

קישור לתוכן
שתף באתרים אחרים

הדבר שאתה רוצה לעשות נקרא control array (מערך של פקדים). אם אתה רוצה עוד מידע בנושא, פשוט חפש בגוגל - יש המון דוגמאות, כגון זו:

http://www.acthompson.net/DotNet/ControlArrays.htm

(רד לחלק של #C)

כאמור, אתה צריך ליצור מערך של picturebox.

כשאתה לוחץ על אחת מהתמונות, הפקד קורא ל-event הלחיצה של התמונה הזו. כשאתה שם קוד בתוך ה-event הזה, ה-visual studio למעשה אוטומטית יוצר לך פונקציה, ורושם את הפונקציה הזו ל-event הזה.

מה שאתה צריך הוא ליצור פונקציה אחת, ולרשום אותה ל-eventים של כל התמונות השונות (זה הקטע עם הפונקציה hitMe בדוגמה הנ"ל).

אגב, ב-VB הייתה תמיכה מובנית של השפה במערך של פקדים (כל event אוטומטית קיבל פרמטר נוסף, שהוא האידקס של הפקד במערך).

קישור לתוכן
שתף באתרים אחרים

עשיתי בפרוייקט שלי משהו מאוד דומה

אני לא זוכר כל כך

זה בערך הניסוח תשחק עם זה פשוט

תנסה אולי להוסיף מרכאות או משהו שם

"(i-1)" או משהו בסגנון

אצלי זה עבד...

קישור לתוכן
שתף באתרים אחרים

הפתרון הוא מראש ליצור את הפקדים כמערך, ולא להזין את הפקדים לתוך מערך אחרי שיצרת אותם.

הסבר קצר:

כשאתה יוצר טופס ב-visual studio, אז שים לב שהוא יוצר לך למעשה שני קבצים: form.cs ו-form.designer.cs.

הקובץ form.designer.cs הוא קובץ שמכיל את הקוד של כל הפקדים שבטופס. פתח את הקובץ, ותראה שהקוד פשוט יוצר את כל ה-pictureboxים האלה, אחד אחרי השני (הרבה קוד אוטומטי).

מה שאתה צריך לעשות הוא להחליף את כל הקוד הזה בלולאה אחת שיוצרת את כל הפקדים (כמובן תדאג שהלולאה תדע למקם אותם) ותכניס אותם למערך (או רשימה).

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.


×
  • צור חדש...